Что такое альтернатива AuthenticationManager в .Net Core? - PullRequest
0 голосов
/ 27 сентября 2019

Я работаю над .Net Core Project, теперь мне нужен AuthenticationManager для интерфейса IAuthenticationManager

В соответствии с Microsoft это имеет obsolote.

Дляget ApplicationSignInManager У меня есть этот метод

      private ApplicationSignInManager getSignInManager(ApplicationUserManager manager, IAuthenticationManager auth)
    {
        return new ApplicationSignInManager(manager, auth);

    }

ApplicationSignInManager

 public class ApplicationSignInManager : SignInManager<ApplicationUser, string>
{
    public ApplicationSignInManager(ApplicationUserManager userManager, IAuthenticationManager authenticationManager)
        : base(userManager, authenticationManager)
    {
    }
    public static ApplicationSignInManager Create(IdentityFactoryOptions<ApplicationSignInManager> options, IOwinContext context)
    {
        return new ApplicationSignInManager(context.GetUserManager<ApplicationUserManager>(), context.Authentication);
    }
}

Это работает в проекте Mvc из-за CreatePerOwinContext, который вызывается с использованием

    app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);

enter image description here

Но как я могу активировать этот класс в .Net Core?

Также узнали, что этот CreateOwinContext является устаревшим в ядре .Net здесь но не могу понять, как вызвать метод создания ApplicationSignInManager ?

1 Ответ

2 голосов
/ 27 сентября 2019

AuthenticationManager - утилита для выполнения действий, связанных с аутентификацией, через свойство HttpContext.Authentication.Таким образом, вы, например, позвонили HttpContext.Authentication.SignInAsync(…) для входа в систему.

Этот доступ уже давно считается устаревшим.В настоящее время существует методов расширения непосредственно на HttpContext, которые служат этой цели:

Так что теперь вам просто нужен доступ к текущему HttpContext, и вы можете вызывать действия аутентификации напрямую, без необходимости AuthenticationManagerindirection.

Что касается вещей, связанных с OWIN, обратите внимание, что ASP.NET Core не использует OWIN, но создал совершенно новую систему.Этот основан на OWIN, так что вы можете найти знакомые вещи, но все же принципиально разные.Так что вам нужно будет привыкнуть к новой системе аутентификации .

...