在ASP.Net MVC 3应用程序中使用多个成员资格提供程序

时间:2011-03-17 16:32:33

标签: asp.net-mvc asp.net-membership

我在现有的mvc 3 razor应用程序中添加了一个新区域,作为管理区域来管理一些设置和内容。该网站的其余部分目前由一个自定义提供程序保护,该提供程序对我们的客户端进现在我需要对一些员工进行身份验证以访问管理区域。客户端用户数据与我们员工所需的数据库和格式完全不同。

这可能没有太多麻烦吗?

1 个答案:

答案 0 :(得分:60)

实际上很少有头痛。

只需在web.config中添加所需的所有MembershipProvider:

<membership defaultProvider="MembershipProvider1">
  <providers>
    <clear/>
    <add name="MembershipProvider1" type="MvcApplication.MembershipProvider1" />
    <add name="MembershipProvider2" type="MvcApplication.MembershipProvider2" />
    <add name="AspNetSqlMembershipProvider"
      type="System.Web.Security.SqlMembershipProvider"      
      connectionStringName="ApplicationServices" />
  </providers>
</membership>

如您所见,我添加了两个提供商。我还指定了默认提供程序。

然后我可以在这两者之间切换:

var membershipProvider1 = Membership.Providers["MembershipProvider1"];
membershipProvider1.ValidateUser("Mike", "banana");

var membershipProvider2 = Membership.Providers["MembershipProvider2"];
membershipProvider2.ValidateUser("Mike", "orange");

您可能希望将其包装到应用程序服务或其他内容中,但您明白了。没那么头疼,对吧?