Tôi sử dụng Asp.Net Identity để kiểm soát ủy quyền của ứng dụng của tôi. Bây giờ, tôi cần thực hiện việc này: nếu người dùng không hoạt động sau 30 phút, hãy chuyển đến trang đăng nhập, anh ta đăng nhập không chọn hộp kiểm "isPersistent". Và nếu chọn hộp kiểm "isPersistent", hãy đặt ngày hết hạn của cookie trong 14 ngày. tôi cố gắng làm điều này bằng cách thay đổi các Starup.Auth.cs như thế này:Làm thế nào để thiết lập asp.net Identity cookies hết hạn thời gian
public void ConfigureAuth(IAppBuilder app)
{
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
SlidingExpiration = true,
CookieName = WebHelpers.ConstStrings.AUTHCOOKIESNAME
});
}
và mã đăng nhập như thế này:
private async Task SignInAsync(User user, bool isPersistent)
{
AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
if (isPersistent)
{
AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity);
}
else
{
AuthenticationManager.SignIn(new AuthenticationProperties() { ExpiresUtc = new DateTimeOffset(DateTime.UtcNow.AddMinutes(30)) }, identity);
}
}
Nhưng tôi phát hiện ra rằng khi người dùng không chọn hộp kiểm isPersistent , ngày hết hạn của cookie đã là 'Phiên', không phải là thời gian hiện tại cộng thêm 30 phút.
Các cookie trạng thái khi sử dụng mã như sau, do đó 'nhớ đến tôi' hộp kiểm có thể không hoạt động :(..
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
ExpireTimeSpan = TimeSpan.FromMinutes(30),
SlidingExpiration = true,
CookieName = WebHelpers.ConstStrings.AUTHCOOKIESNAME
});
Hoàn hảo, tôi sử dụng mã của bạn và đạt được chức năng trên, cảm ơn bạn. Ngoài ra, tôi đặt Owin từ phiên bản 2.1.0 để nâng cấp lên 3.0.1. –
Cảm ơn, đã làm mọi thứ rõ ràng với tôi – Janiiik
Cảm ơn, mã và giải thích của bạn hoạt động hoàn hảo. –