Подтвердить что ты не робот

Идентификатор аутентификации ASP.NET Identity AuthenticationManager против SignInManager и файла cookie

В чем разница между использованием AuthenticationManager SignIn в отличие от использования SignInManager PasswordSignIn/SignIn? У меня есть реализация, использующая SignInManager, и истечение срока действия моего файла cookie составляет 30 дней, но похоже, что мое веб-приложение случайно удалит мои файлы cookie до 30 дней. Будет ли использование SignInManager быть причиной этого? Должен ли я использовать реализацию AuthenticationManager вместо этого?

Код примера из окна показывает такой знак, но я также видел другие примеры, которые используют реализацию AuthenticationManager.

var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);

Вот моя конфигурация запуска.

            app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            ExpireTimeSpan = TimeSpan.FromDays(30),
            LoginPath = new PathString("/signin"),
            Provider = new CookieAuthenticationProvider
            {
                OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<AppUserManager, AppUser>(
                    validateInterval: TimeSpan.FromMinutes(30),
                    regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
            }
        });
        app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
        app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5));
        app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie);
4b9b3361

Ответ 1

Перед выпуском среды идентификации версии 2.1.0 мы должны написать собственный код для получения результатов (SignInStatus) для двухфакторной аутентификации, блокировки учетной записи, EmailToBeConfirmed и т.д. С помощью SignInManager это было упрощено, и мы получите SignInStatus с одной строкой кода.

Вы можете понять эту проверку после пакетов NuGet и выполнить две версии.

Версия 2.0.0: Install-Package Microsoft.AspNet.Identity.Samples -Version 2.0.0-beta1 -Pre

Версия 2.1.0: Install-Package Microsoft.AspNet.Identity.Samples -Pre

AuthenticationManager.SignIn - это механизм, используемый за SignInManager для завершения процесса signign пользователя, так что между AuthenticationManager.SignIn и SignInManager.PasswordSignIn/SignIn нет никакой разницы. Мы могли бы объяснить SignInManager как вспомогательный класс для управления всеми типами аутентификации, например PasswordSignIn/SignIn, SignInOrTwoFactor.

Поэтому срок действия файлов cookie не зависит от метода, который вы использовали для signIn, как все настроено в CookieAuthenticationOptions для запуска.