例外を発生させるPrinciplePermissionAttribute
に関する問題が発生しています。 Load
メソッドの属性を持つページでは、最初のログイン直後に例外がスローされます。ASP.Netのメンバーシップの主な受領問題
<PrincipalePermission(SecurityAction.Demand, role:="Level1")> _
Protected Sub Page_Load(ByVal sender As Object, ByVal e as System.EventArgs) Handles Me.Load
End Sub
これは例外Request for principal permission failed
をスローします。
これを削除すると、ページが正常に読み込まれ、同じ属性を持つ別のページに移動でき、問題なく動作します。また、メンバーシップシステムRoles.IsUserInRole()
を使用しても問題はありません。
最初のログイン後に私のThread.CurrentPrincipal
はGenericPrincipal
であり、RolePrincipal
ではないことに気付きました。後続の要求は、ジェネリックの代わりに正しいタイプを示します。私はPostAuthenticate
イベントのGlobal.asax
ファイルでこれを強制しようとしましたが、この後にasp.netがGenericPrincipal
に設定されているようです。
この問題を解決する方法や、Roles.IsUserInRole()
メソッドを使用していますか?
UPDATE
パイプラインhereで起こっていただきました!にいくつかの説明を見つけた後、私はGlobal.asax
でそれを変更する理由は助けにはならなかった見ることができます。私はこれを使ってテストしたプロトタイププロジェクトを以前から持っていたので、それを再現できませんでした。私はそれがプロジェクトのタイプと関係があるのだろうかと思います。プロトタイプはWebサイトプロジェクトであり、問題のあるものはWebアプリケーションプロジェクトです。
GenericPrincipal
がRolePrincipal
に変更されていることは間違いですが、最初のリクエストが処理された後でしかないと思います。だから私の 'Page_Load'が実行される前にそのようなことが起こらないと言うのは難しいです。