Как использовать Identity в ASP. NET Core 3.1 без EF Core? - PullRequest
1 голос
/ 20 февраля 2020

У меня есть проект в ASP. NET Core 3.1, и я хочу реализовать Identity для моего приложения. Я нашел много примеров с EF Core, но я использую LinqConnect (Devart) вместо EF Core и базы данных - SQL Server. Мне интересно, как реализовать идентификацию в моем проекте простым способом.

1 Ответ

2 голосов
/ 20 февраля 2020

По сути, все, что вам нужно сделать, - это создать свой собственный пользовательский магазин.

public class CustomUserStore : IUserStore<IdentityUser>,
                               IUserClaimStore<IdentityUser>,
                               IUserLoginStore<IdentityUser>,
                               IUserRoleStore<IdentityUser>,
                               IUserPasswordStore<IdentityUser>,
                               IUserSecurityStampStore<IdentityUser>
{
    // interface implementations not shown
}

И затем добавить его:

public void ConfigureServices(IServiceCollection services)
{
    // Add identity types
    services.AddIdentity<ApplicationUser, ApplicationRole>()
        .AddDefaultTokenProviders();

    // Identity Services
    services.AddTransient<IUserStore<ApplicationUser>, CustomUserStore>();
    string connectionString = Configuration.GetConnectionString("DefaultConnection");
    services.AddTransient<SqlConnection>(e => new SqlConnection(connectionString));
    services.AddTransient<DapperUsersTable>();

    // additional configuration
}

Это задокументировано в официальной документации .

...