0


なぜIsInRole()に対してPrincipalPermissionを選択する必要がありますか?

Q1 - 私たちはPrincipalPermission.Unionを使用することを好むべき理由私は理解していない()(またはPrincipalPermission.Intersect())の代わりにIsInRole()の?どちらかといえば、IsInRole()複数回呼び出すと、複数のPrincipalPermissionオブジェクトを作成し、連合()(または交差())を介して1にそれらをマージより少ないコードを必要としますか?


Q2 - PrincipalPermissionオブジェクトの1つのコンストラクタのオーバーロードはまた、、ユーザが認証されているかどうかを確認するために要求を伝えるフラグ()をにisAuthenticated指定します。最初の2つのパラメータ(の名前がのロール)が両方ともnullの場合にのみ、このフラグを使用しないと便利ですか?


ありがとう

答えて

2

Q1。 - RE:PrincipalPermissionメソッドとIPrincipal.IsInRole(..)

2つの関数呼び出しは、与えられた役割の結合または共通部分を持つPrincipalPermissionを作成します。したがって、非常に特定の要求を持つプリンシパルになり、IsInRole()を呼び出すことができます。これを行うと、SQLサーバーまたはアクティブディレクトリである可能性がある役割プロバイダーに突き当たり、待ち時間が発生するので、いつもそれをやりたくはありません。

Q2。 - RE:PrincipalPermission authentication

Authenticatedは、ユーザーがプロバイダにログインしていることを示します。アプリケーションで監査のみが必要な場合は、ユーザーが役割提供者にログインしていることを確認することで、自分が誰であるかを記録できます。

あなたは、

+0

Q1 - PrincipalPermission.Union()またはPrincipalPermission.Intersect()を使用して行うことができることは、IsInRole()と多くの方法で行うことができます。少ないタイピング! – SourceC

+1

はい、それを2回呼び出す必要があります。あなたは、あなたの後のプリンシパルの結合または交差である1つの事前許可を作成してから、IsInRole()を1回呼び出します。 また、intersect/unionを設定すると、それぞれの役割の内容によって異なる結果が得られます。 http://en.wikipedia.org/wiki/Intersection_(set_theory) http://en.wikipedia.org/wiki/Union_(set_theory) – Spence

+0

このトピックをドラッグして申し訳ありません。いくつかの異なる機会に同じマージされた(Intersect/Unionを介して)PrincipalPermissionオブジェクトを使用しますか?私はおそらく非常に明白な何かを見逃しているでしょう。 – SourceC