ASP.net 身份如何访问数据库,这是我应该使用的方式吗?

How does ASP.net Identity access the database and is it the way i should be using?

我正在开发一个 ASP.net MVC 网站,该网站具有用于安全和登录的身份。我或多或少知道使用 ASP.net Identity 的基础知识,但我遇到的一个问题是我不知道它如何从连接字符串访问数据库。

澄清我的问题:ASP.net 身份如何访问数据库,我应该使用相同的方法吗?

要访问数据库,您可以使用 entity framework 并使用数据库优先方法。

  1. 您已经使用命令

    从您table创建了权利
    Scaffold-DbContext "Server=;Initial Catalog=dbname
    ;IntegratedSecurity=False;User ID=;Password=;
    ConnectTimeout=15;
    Encrypt=False;TrustServerCertificate=True;
    ApplicationIntent=ReadWrite;MultiSubnetFailover=False"
    Microsoft.EntityFrameworkCore.SqlServer -OutputDir Entities -f
    
  2. 命令将为您创建上下文对象,您可以使用它来访问数据库。

Asp.net Identity 使用 entity framework 连接到数据库并拥有自己的 DbContext class,您可能可以在 IdentityModel.cs 中找到它,其名称为 ApplicationDbContext,它使用代码优先方法创建与 ASP.NET Identity 相关的表,您可以通过向 ApplicationUser 添加属性来扩展属性。如果你想改变它的 ConnectionString 你可以通过将你的 connectionString 添加到它的基础开始,如下所示:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("YourConnectionString", throwIfV1Schema: false)
    {
    }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();
    }
}