2012-04-18 63 views
1

我正在构建一个自定义的ASP.NET成员资格提供程序,因为我想用我自己的'用户'表来创建成员和那种东西。这里的情况:自定义ASP.NET成员资格提供程序:我可以将它放在另一个项目中吗?

  1. 我有一个MVC 4项目,指的是一个'服务'项目包含服务层。
  2. 我构建了一个自定义MembershipProvider的包装器,它可以帮助单元测试。这个包装引用了自定义的MembershipProvider。
  3. 我从我的服务层引用包装器。
  4. 我把MVC4项目中自定义的MembershipProvider(在App_Data文件夹中),因为这是据我所知需要......至少:Visual Studio中抱怨道,它无法找到会员提供商,如果我把它放在其他地方。

所以,现在我有一个循环依赖:MVC4 - >服务层 - > Wrapper - > MVC4。我的问题是:我如何摆脱这个问题?理想情况下,我想将会员提供商放在一个单独的项目中,但我没有得到这个工作。有关于此的任何建议? Google恐怕不是真的有用。

奖金问题1:我应该延伸的SqlMembershipProvider代替的MembershipProvider?

奖金问题2:有没有更好的选择?这整个ASP.NET成员感觉真的过时了,并且有许多缺点(例如:它不是可测试的)。

回答

2

你可以绝对把你的自定义会员提供商在另一个项目。我有两个我构建为独立的DLL,然后在Web项目中添加引用。

你不提,为什么你添加在服务层中的参考,但如果这是必要的,你真的应该把它们作为两个不同的范围,因此需要两个单独的解决方案。我有一个成员提供者需要调用WCF服务来验证成员身份,但这些是两个独立的部分,你不应该在两者之间共享代码。

你不需要把你的代码在App_Data文件夹,只需添加一个参考网站项目中的成员资格提供项目或DLL。右

奖金问题1:第

奖金问题2:成员提供预售日期整个TDD移动(至于微软而言),所以是的,他们不是真正有利于测试。但是,如果你从基类继承,你就会陷入一个经过充分测试和时间磨损的框架,所以你只需要测试你的自定义位。

相关问题