3

Q1 – ネイティブのUrlAuthorizationModuleがロールを認識しない理由は、ネイティブ モジュールがアクセスできない IPrincipalインターフェイスを 実装するマネージド オブジェクトにロール情報が格納されているためです。

A) しかし、ネイティブのUrlAuthorizationModuleが認証チケットを理解し、FormsAuthenticationModuleと連携して動作できる場合、なぜ Roles モジュールでも動作しないのでしょうか?

つまり、このチケットには、ユーザーのロールに関する情報も含まれていませんか? もしそうなら、UrlAuthorizationModuleはチケットからロールに関するすべての情報を取得できるので、 IPrincipalオブジェクトにアクセスする必要はありませんか?!


Q2 次の記事http://www.asp.net/learn/security/tutorial-11-vb.aspxの主張:

匿名ユーザーがサイトにアクセスすると、FormsAuthenticationModuleRoleManagerModuleもプリンシパル オブジェクトを作成しません。


A) 上記の主張が真である場合、次のコードは例外をスローしません。これは、Userプロパティに null 参照が含まれているためです。

        if (User.Identity.IsAuthenticated)
            Label1.Text = "user is authenticated";
        else Label1.Text = "user is not authenticated";

Label1に「<em>ユーザーは認証されていません」と表示されます。これは、ユーザーが認証されていなくても、IPrincipalを実装するオブジェクトがユーザープロパティに割り当てられていることを示唆しています。


ありがとう

4

1 に答える 1