代码之家  ›  专栏  ›  技术社区  ›  jason

如何从控制器获取ASP.NET MVC应用程序的MembershipProvider实例?

  •  1
  • jason  · 技术社区  · 16 年前

    我需要从控制器中获取应用程序的成员资格提供程序的实例。我有一个自定义成员身份实现,它有一个自定义用户属性,描述登录用户。问题的核心是我需要检索这个用户对象。

    我的应用程序已经完成了membershipProvider的框架实现,但是它工作正常,并且正确地验证了试图登录或创建新帐户的用户。因此,我保留了ASP.NET MVC应用程序开箱即用的AccountController的默认实现。

    如果你需要更多的细节,我很乐意提供。

    3 回复  |  直到 14 年前
        1
  •  1
  •   Mark Seemann    16 年前

    如果在Visual Studio中创建一个新的ASP.NET MVC项目,它将自动创建一个名为 AccountController 为你。此控制器提供了一个示例,说明如何访问ASP.NET MVC中的MembershipProvider。

    简而言之,它通过在 IMembershipService 接口。

    班级 AccountMembershipService 工具 IMembershipService公司 作为一个 Adapter 属于 MembershipProvider .

    可以插入的实例 IMembershipService公司 任何需要它的控制器,就像 会计主管 做。

        2
  •  4
  •   Robert Harvey    16 年前

    我猜你的会员资格提供商是在web.config中注册的。如果是,则可以使用静态属性 System.Web.Security.Membership.Provider .

        3
  •  0
  •   Matt Wear    16 年前

    我同意Mike的观点,这是实现这一点的标准方法,但是为了减少每次都必须强制转换提供者的混乱,您可以创建一个基础控制器,所有控制器都继承该基础控制器,并拥有一个受保护的属性,该属性具有一个强制转换一次的getter。这将实现更好的代码重用,如果您更改了您的成员资格提供者,那么您只需要在一个地方完成它。