web-dev-qa-db-ja.com

ASP.NET Identity AuthenticationManagerとSignInManagerおよびCookieの有効期限

SignInManager PasswordSignIn/SignInを使用する場合とAuthenticationManager SignInを使用する場合の違いは何ですか? SignInManagerを使用して実装し、Cookieの有効期限を30日に設定していますが、30日よりはるか前に私のWebアプリがCookieをランダムに期限切れにするようです。 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);
27
Scott Wilson

アイデンティティフレームワークバージョン2.1.0のリリース前に、2要素認証、アカウントロックアウト、EmailToBeConfirmedなどの結果(SignInStatus)を取得するために独自のコードを記述する必要があります。SignInManagerでは、これが簡素化され、SignInStatusを取得します1行のコード。

NuGetパッケージに続いて、2つのバージョンを比較するこのチェックを理解できます。

バージョン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の背後で使用されるメカニズムです。したがって、AuthenticationManager.SignInおよびSignInManager.PasswordSignIn/SignInSignInManagerは、PasswordSignIn/SignInSignInOrTwoFactorなどのすべてのタイプの認証を管理するヘルパークラスとして説明できます。

したがって、起動のCookieAuthenticationOptionsですべて設定されているように、cookieの有効期限はsignInに使用した方法に依存しません。

30
DSR