【发布时间】:2011-07-17 13:30:14
【问题描述】:
我正在向现有的 mvc 3 razor 应用程序添加一个新区域作为管理区域,用于管理一些设置和内容。该站点的其余部分目前由对我们的客户进行身份验证的自定义提供商保护。现在我需要对一些员工进行身份验证才能访问管理区域,客户用户数据的数据库和格式与我们员工所需的完全不同。
这是否可以不费吹灰之力?
【问题讨论】:
标签: asp.net-mvc asp.net-membership
我正在向现有的 mvc 3 razor 应用程序添加一个新区域作为管理区域,用于管理一些设置和内容。该站点的其余部分目前由对我们的客户进行身份验证的自定义提供商保护。现在我需要对一些员工进行身份验证才能访问管理区域,客户用户数据的数据库和格式与我们员工所需的完全不同。
这是否可以不费吹灰之力?
【问题讨论】:
标签: asp.net-mvc asp.net-membership
实际上很少涉及头痛。
只需在 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");
您可能希望将其包装到应用程序服务或其他东西中,但您明白了。没那么头疼吧?
【讨论】: