2

私は ASP.NET MVC 4 を使用して Web アプリケーションを開発しており、次のようなカスタム MembershipProvider と RoleProvider をいくつか作成しています。

# Custom MembershipProviders
<membership defaultProvider="myMembershipProvider">
  <providers>
    <clear />
    <add name="myMembershipProvider" type="WebApp1.Business.Auth.MyMembershipProvider" />
    <add name="adminMembershipProvider" type="WebApp1.Business.Auth.AdminMembershipProvider" />
  </providers>
</membership>


# Custom RoleProviders
<roleManager enabled="true" defaultProvider="MyRoleProvider">
  <providers>
    <clear />
    <add name="MyRoleProvider" type="WebApp1.Business.Auth.MyRoleProvider" />
    <add name="AdminRoleProvider" type="WebApp1.Business.Auth.AdminRoleProvider" />
  </providers>
</roleManager>

私の意図は、「myMembershipProvider」と「MyRoleProvider」を使用する Logon というカスタム AuthorizeAttribute を作成することです。「adminMembershipProvider」と「AdminRoleProvider」を使用する AdminLogon という名前の別のものを作成します。

2 つのカスタム AuthorizeAttributes を作成する理由は、各ロールの権限を取得するいくつかのメソッドを分離したいからです。

問題は、カスタム AuthorizeAttribute の両方でデフォルトの MembershipProvider と RoleProvider を動的に設定するにはどうすればよいかということです。

例えば:

// Set the default MembershipProvider as adminMembershipProvider
// Set the default RoleProvidersas as AdminRoleProvider
[AdminLogon(Roles = "Administrador")]
public ActionResult Funcionarios()
{
    return View();
}


// Set the default MembershipProvider as myMembershipProvider
// Set the default RoleProvidersas as MyRoleProvider
[Logon(Roles = "Administrador")]
public ActionResult Funcionarios()
{
    return View();
}
4

0 に答える 0