PrinciplePermissionAttribute
例外の原因となる問題が発生しています。メソッドに属性があるページは、Load
最初のログインの直後に例外をスローします。
<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()
機能を使用する場合、問題はありません。
最初のログイン後、 myThread.CurrentPrincipal
はタイプGenericPrincipal
ではなくRolePrincipal
. 後続のリクエストでは、ジェネリックの代わりに正しいタイプが表示されます。Global.asax
イベントのファイルでこれを強制しようとしましたが、これが発生した後PostAuthenticate
にasp.netが設定されているようです。GenericPrincipal
この動作を修正する方法についてのアイデアはありますか、またはそのRoles.IsUserInRole()
方法を使用して立ち往生していますか?
UPDATEここ
でパイプラインで何が起こっているのかについての説明を見つけた後、なぜそれを変更しても役に立たなかったのかがわかります。これをテストした以前のプロトタイププロジェクトがありましたが、そこで再現できませんでした。プロジェクトの種類と関係があるのだろうか。プロトタイプは Web サイト プロジェクトであり、問題のあるプロジェクトは Web アプリケーション プロジェクトです。Global.asax
GenericPrincipal
が に変更されるのは奇妙だと思いますRolePrincipal
が、最初のリクエストが処理された後でのみです。したがって、「Page_Load」が実行される前に発生しないように、機能していないとは言い難いです。