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>

我的意图是创建一个名为 Logon 的自定义 AuthorizeAttribute,它将使用“myMembershipProvider”和“MyRoleProvider”;并创建另一个名为 AdminLogon 的将使用“adminMembershipProvider”和“AdminRoleProvider”。

我创建两个自定义 AuthorizeAttributes 的原因是因为我想分离一些获得每个角色权限的方法。

问题是,如何在自定义 AuthorizeAttribute 中动态设置默认 MembershipProvider 和 RoleProviders。

例如:

// 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