【问题标题】:Moving ASP.net membership provider to separate class library将 ASP.net 成员资格提供程序移动到单独的类库
【发布时间】:2011-03-08 22:20:40
【问题描述】:

我正在构建一个具有非常基本身份验证的 MVC 2 应用程序(一个用户和一个角色来访问管理部分)。因为在我开始我的项目时内置了一些基本的表单身份验证,所以我只是使用了它。问题是,我已经开始将我所有的数据访问代码移动到一个单独的项目(类库)中,我不确定如何在不破坏所有内容的情况下移动成员资格提供者的东西。我宁愿不把它留给其他代码,但我也不想花几个小时滚动我自己的提供程序,当存在足够的提供程序时。

那么,是否可以将内置的 asp.net 会员提供程序代码移动到单独的类库项目中?如果是这样,如何。如果没有,我有什么选择?

【问题讨论】:

  • 您如何使用 Asp.Net 会员资格?您想在其他项目中移动什么?
  • 基础(非空)MVC 2 项目带有一个 Account 控制器和一个 AccountModels 类,其中包含模型、服务和验证代码。我想将该 AccountModels 类拉出并放入我单独的类库中。但是,它需要 System.Web.MVC,并且添加该引用会破坏这种分离的目的(域不应该知道 UI 实现)。是否有一种通用的方法来拆分该类?我对这里的最佳做法很感兴趣,因为我有能力做,但想把它做好。
  • 就我自己而言,我在我的域项目中添加了对 System.Web.MVC 的引用

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


【解决方案1】:

如果您尝试使用类库,则必须引用 System.Web 和 System.Web.ApplicationServices

【讨论】:

  • 两年后,但这正是我所需要的。
【解决方案2】:

对于我自己,我正在使用封装 Membership 类的 AuthenticationService 类,因此更容易对我的控制器进行单元测试,也更容易将我的类移动到我想要的位置。在我的控制器中,我有一个 IAuthentificationService,它在控制器的构造函数中(来自 DI)。如果您想从 Asp.Net 成员资格切换到其他“安全提供商”,这也更容易。

【讨论】:

    【解决方案3】:

    内置的 asp.net 提供程序仅适用于配置设置和数据库设置。您不必为此编写大量代码。如果您指的是如何在代码中调用它的方法,例如(getUser() 或 validateUser() 等),那么您可以很好地引用类库中所需的 DLL 并将代码移到那里。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-15
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 2010-11-20
      相关资源
      最近更新 更多