我正在构建一个新的MVC应用程序。通常,我总是有一个如下所示的项目结构:
我的问题是,我总是以困惑的用户管理实现。我使用了成员资格提供程序,因此使该部分不尽如人意。现在,我看到了新的Identity实现,我非常喜欢它。我进行了一些热搜索,将其抽象到后端,但没有结果。
我找到了有关构建项目的帖子,但没有给出真正的答案:Decoupling ASP.NET MVC 5 Identity to allow implementing a layered application
我希望有人可以向我提供一些提示或技术文档,以说明如何将所有登录和身份验证抽象到后端层。
最佳答案
您可以在业务层中创建一个非常基本的界面。它看起来像这样:
public interface IAuthenticationService
{
bool VerifyPassword(User user, string password);
bool SignIn(User user);
void SignOut();
}
您可以在业务层,UI层或单独的基础结构层中使用ASP.NET Identity来实现此接口(interface)。
该接口(interface)可以通过不同的技术来实现,这些技术可以在运行时由IoC容器进行注册,例如,您可以仅在
AccountController
中使用该接口(interface)。由于身份验证框架往往会经常更改(每年左右),因此您可以更轻松地进行切换。