【问题标题】:Using multiple membership providers within ASP.Net MVC 3 application在 ASP.Net MVC 3 应用程序中使用多个成员资格提供程序
【发布时间】:2011-07-17 13:30:14
【问题描述】:

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

这是否可以不费吹灰之力?

【问题讨论】:

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


    【解决方案1】:

    实际上很少涉及头痛。

    只需在 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");
    

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

    【讨论】:

    • 好问题,好答案。谢谢大家:)
    • 很好的问题/答案。谢谢!
    • 太棒了 感谢您的回答和提问
    • 有没有办法设置 WebSecurity 类使用的提供者?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多