将 aspnet 身份与自定义表一起使用

using aspnet identity with custom tables

我正在开发 asp.net MVC 核心应用程序。我有带有用户和角色表的自定义数据库。我想对自定义表使用 asp.net 标识,这样我就不必使用 aspnetusers、aspnet 角色表。如何使用 asp.net 身份和 asp.net 核心

您可以使用 Cookie 中间件身份验证。

在你的Startup.cs中添加

app.UseCookieAuthentication(new CookieAuthenticationOptions()
   {
       AuthenticationScheme = "MyCookieMiddlewareInstance",
       LoginPath = new PathString("/Account/Unauthorized/"),
       AccessDeniedPath = new PathString("/Account/Forbidden/"),
       AutomaticAuthenticate = true,
       AutomaticChallenge = true
   });

在您的代码中,验证用户名和密码后,您调用 登录

await HttpContext.Authentication.SignInAsync("MyCookieMiddlewareInstance", principal);

然后签字

await HttpContext.Authentication.SignOutAsync("MyCookieMiddlewareInstance");

有关详细信息,请参阅 Microsoft website 上的文章

祝你好运! :) 我最近几天刚刚经历了这个过程。我已经让它工作了,但在某些阶段它真的很痛苦。

简而言之:

  1. 您需要创建自己的用户模型来实现 IUser 接口。
  2. 您需要创建自己的 DAL 以从您的自定义数据库表中获取数据
  3. 您需要实现自己的 UserStore,它根据您要使用的 asp.identity 的功能实现不同的接口

本文 link 将帮助您: https://www.asp.net/identity/overview/extensibility/overview-of-custom-storage-providers-for-aspnet-identity