【问题标题】:Set Membership Provider to use a specific Provider将 Membership Provider 设置为使用特定的 Provider
【发布时间】:2012-05-02 07:36:47
【问题描述】:

我正在使用开箱即用的 Asp.Net Membership 功能来处理我的用户管理和角色管理。

我的应用程序由一个用于每个客户端的数据库组成,每个数据库都有自己的成员资格提供程序和角色提供程序。

但是,有些用户为多个客户工作,我希望使用单一登录并让他们选择查看哪个客户。我通过使用存储所有用户名和他们有权访问的客户端的关系的中间数据库来完成所有设置以促进这种“客户端切换”。我还设置了它,因此对一个数据库中的用户的任何更新都会更新其他数据库中的所有相应用户。所有这些逻辑都运行得很好,除了我似乎不知道如何告诉 ASP.Net 更改为特定的 MembershipProvider 并使用那个。

我认为我应该使用的过程如下(当用户在客户端下拉列表中切换客户端时):

  • 退出当前用户
  • 告诉 ASP.Net 使用哪个会员服务提供商(根据下拉菜单中选择的客户端进行选择)
  • 使用所选客户的会员提供程序登录当前用户,并刷新/重定向到他们更改下拉菜单时正在查看的页面

我知道如何获取对特定成员资格提供程序 (Membership.Providers[MembershipProviderName]) 的引用,但我找不到任何有关如何告诉 ASP.Net 更改其成员资格提供程序的信息。我什至不确定 asp.net 登录控件是如何在后台执行此操作的——这可能会帮助我解决所有这些问题。

我已经在 SO 和网络上搜索了一段时间,除了一些人们试图修改其 Web.config 中 Providers 元素的 DefaultProvider 属性的线程之外,似乎找不到太多关于这样做的信息。

【问题讨论】:

    标签: asp.net asp.net-membership forms-authentication membership-provider


    【解决方案1】:

    这个MSDN tutorial 可以帮助你。

    【讨论】:

    • 感谢您的教程。我看过几个不同的,但这是我见过的最好的之一。最后,我试图避免使用自定义会员提供程序。然而,我对提供者的了解越多,我就越发现我的方法并不是真正的多提供者模型的用途。目前,由于客户端数据库中的所有重复用户将始终拥有相同的数据(感谢我的应用程序逻辑),我决定稍微作弊,只使用 asp.net 选择的任何提供商提供的相同用户/角色信息(除了 UserId,必须根据要求从特定提供商处检索)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    • 2013-04-18
    • 1970-01-01
    • 2011-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多