我正在构建一个新的MVC应用程序。通常,我总是有一个如下所示的项目结构:

  • DAL层(实体和存储库
  • 服务层(在api/Frontend和DAL之间进行协调的面向业务的服务调用)
  • 前端,这可以是Web API或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)。由于身份验证框架往往会经常更改(每年左右),因此您可以更轻松地进行切换。

    10-07 19:19
    查看更多