質問

ロール管理が有効になっている場合は、

私の本によると、その後、RoleManagerModuleRolePrincipalHttpRequest.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を使用します。

だから、あなたは正しい。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top