我正在构建一个自定义 ASP.NET 成员资格提供程序,因为我想使用我自己的“用户”表来创建成员和类似的东西。情况如下:
- 我有一个 MVC 4 项目,它引用了一个包含服务层的“服务”项目。
- 我围绕自定义 MembershipProvider 构建了一个包装器,它有助于单元测试。此包装器引用自定义 MembershipProvider。
- 我从我的服务层引用包装器。
- 我将自定义 MembershipProvider 放在 MVC4 项目中(在 App_Data 文件夹中),因为据我所知这是必需的……至少:Visual Studio 抱怨说,如果我把它放在其他地方,它就找不到成员资格提供程序。
所以现在我有了一个循环依赖:MVC4 -> 服务层 -> Wrapper -> MVC4。我的问题:我该如何摆脱它?理想情况下,我想将会员提供者放在一个单独的项目中,但我就是无法让它发挥作用。对此有什么建议吗?恐怕谷歌并没有真正的帮助。
奖励问题 1:我应该扩展 SqlMembershipProvider 而不是 MembershipProvider?
奖励问题 2:没有更好的选择吗?整个 ASP.NET 成员感觉真的过时了,并且有许多缺点恕我直言(例如:它不是为可测试而构建的)。