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

我正在将一个新的区域添加到现有的mvc 3razor应用程序中,作为pipe理某些设置和内容的pipe理区域。 该网站的其他部分目前由一个自定义提供商进行安全authentication我们的客户。 现在我需要validation一些员工访问pipe理区域,客户端用户数据的数据库和格式完全不同于我们员工需要的数据库和格式。

这可能没有很多头痛吗?

实际上很less涉及头痛。

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

<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"); 

您可能想要将其包装到应用程序服务中,但您明白了。 不是那么头疼,对吧?