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);
アイデンティティフレームワークバージョン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/SignIn
。 SignInManager
は、PasswordSignIn
/SignIn
、SignInOrTwoFactor
などのすべてのタイプの認証を管理するヘルパークラスとして説明できます。
したがって、起動のCookieAuthenticationOptions
ですべて設定されているように、cookieの有効期限はsignInに使用した方法に依存しません。