ユーザーがWebサイトにアクセスし、データベースに保存されている資格情報を入力すると、認証が作成されます。
タイムアウトをどのように設定しますか? MVC5を使用します。
私の認証は次のようになります:
var claims = new List<Claim>();
claims.Add(new Claim("UserId", user.UserID.ToString()));
claims.Add(new Claim(ClaimTypes.Name, user.FirstName + " " + user.LastName));
claims.Add(new Claim(ClaimTypes.Email, user.Email));
claims.Add(new Claim(ClaimTypes.NameIdentifier, user.UserID.ToString()));
var id = new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie);
var ctx = Request.GetOwinContext();
var authenticationManager = ctx.Authentication;
authenticationManager.SignIn(id);
固定の有効期限を設定する方法は、次のようにStartup.Auth.cs
ファイルにExpireTimeSpan
プロパティを設定することです。
// Enable the application to use a cookie to store information for the signed in user
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
ExpireTimeSpan = TimeSpan.FromDays(2)
});
また、Cookieを永続化するように設定する必要があることに注意してください。コードでは、ユーザー名とパスワードに加えてブール値を渡してから、変更する必要があります
authenticationManager.SignIn(id);
することが
authenticationManager.SignIn(new AuthenticationProperties { IsPersistent = rememberMe }, id);
以下では、Startup.csを使用する必要はありません。
AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = true, ExpiresUtc = DateTime.UtcNow.AddHours(1), }, id);