我正在为一个现有的mvc 3 razor应用程序添加一个管理区域,用于管理一些设置和内容。该网站的其余部分目前由自定义提供程序保护,用于认证我们的客户。现在我需要对一些员工进行身份验证,以访问管理区域,但客户用户数据与我们员工所需的完全不同,包括数据库和格式。
这是否可能不会带来太多麻烦?
我正在为一个现有的mvc 3 razor应用程序添加一个管理区域,用于管理一些设置和内容。该网站的其余部分目前由自定义提供程序保护,用于认证我们的客户。现在我需要对一些员工进行身份验证,以访问管理区域,但客户用户数据与我们员工所需的完全不同,包括数据库和格式。
这是否可能不会带来太多麻烦?
实际上很少会出现问题。
只需在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");
您可能希望将其封装到应用程序服务或其他东西中,但您已经明白了这个想法。没那么让人头疼,对吧?