Как заставить vNext использовать мой пользовательский идентификационный код?

Я хочу внедрить систему пользовательского входа, потому что мои пользователи хранятся в другой базе данных, и у меня просто есть dll для проверки учетных данных, поэтому я не хочу базу данных. Я просто хочу иметь возможность войти (с ролями: администратор и пользователь) и выйти из этого приложения. В базе данных инструмента я сохраняю только имя пользователя и его роль (без пароля).

Первое: какие классы я должен реализовать для достижения желаемого эффекта?

Второе: как мне настроить приложение, чтобы оно использовало мой пользовательский код?

1 ответ

Решение

Я не уверен, что я сделал это на 100% правильно, но посмотрите:

1. Настройте проверку подлинности куки

        public void Configure(IApplicationBuilder app)
        {
            app.UseCookieAuthentication(options =>
            {
                options.AutomaticAuthentication = true;
                options.SlidingExpiration = true;
                options.ExpireTimeSpan = TimeSpan.FromMinutes(30);
            });

        }

2. Войти

public class LoginController: Controller 
{

   public IActionResult SignIn(LoginModel form)
   {    
        var userId = CustomLoginLogic(form);

        var claims = new List<Claim>
                {
                    new Claim(ClaimTypes.NameIdentifier, result.UserId)
                };
        var claimsPrincipal = new ClaimsPrincipal(new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme));                       
        context.Response.SignIn(CookieAuthenticationDefaults.AuthenticationScheme, claimsPrincipal);
        return Content("");
   }
}
Другие вопросы по тегам