RoleManagerModuleとRolePrincipalオブジェクト
-
22-08-2019 - |
質問
ロール管理が有効になっている場合は、
私の本によると、その後、RoleManagerModule
はRolePrincipal
にHttpRequest.User
オブジェクトを割り当てることにより、ユーザーのセキュリティコンテキストを作成します。しかし、前に呼び出されるHttpContext.User
する?
FormsAuthenticationModule
、によって既に作成されたセキュリティコンテキスト(RoleManagerModule
に割り当てられているので、主な目的は、)ではありません
次のコードを主な目的にすでに存在していHttpRequest.User
するために割り当てられているため、私はRoleManagerModule
がまだ呼び出されていないにもかかわらず、これを求めている。
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
if (User.Identity.IsAuthenticated && Roles.Enabled)
{
//here we subscribe user to a role via Roles.AddUserToRole()
}
}
だから、後で(FormsAuthenticationModule
によって作成された)HttpRequest.User
オブジェクトに置き換え主な目的、RolePrincipal
によって作成され、RoleManagerModule
するために割り当てられたが、ありますか?
解決
によると、この記事でます:
役割の枠組みが有効になっている場合は、、RoleManagerModule HTTPモジュールは、FormsAuthenticationModule後の手順としたAuthenticateRequestイベントの後に起動PostAuthenticateRequestイベント、中に認証されたユーザーのロールを識別します。要求が認証されたユーザからのものである場合、RoleManagerModuleはFormsAuthenticationModuleによって作成されたGenericPrincipalオブジェクトを上書きし、RolePrincipalオブジェクトに置き換えます。 RolePrincipalクラスは、ユーザーが属するどのような役割を決定する役割のAPIを使用します。
だから、あなたは正しい。
所属していません StackOverflow