Tôi đang sử dụng xác thực mẫu ASP.NET để ghi nhật ký người dùng vào trang web mà chúng tôi đang phát triển.Nhớ chức năng của tôi trong ASP.NET Form Authentication không hoạt động
Một phần chức năng là hộp kiểm "Nhớ thông tin đăng nhập của tôi" ghi nhớ người dùng trong một tháng nếu họ kiểm tra.
Mã để đăng nhập người sử dụng trong thực hiện như sau:
public static void Login(HttpResponse response, string username,
bool rememberMeChecked)
{
FormsAuthentication.Initialize();
FormsAuthenticationTicket tkt = new FormsAuthenticationTicket(1, username, DateTime.Now,
DateTime.Now.AddMinutes(30), rememberMeChecked,
FormsAuthentication.FormsCookiePath);
HttpCookie ck = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(tkt));
ck.Path = FormsAuthentication.FormsCookiePath;
if (rememberMe)
ck.Expires = DateTime.Now.AddMonths(1);
response.Cookies.Add(ck);
}
Các phần có liên quan trong web.config là thế này:
<authentication mode="Forms">
<forms loginUrl="Home.aspx" defaultUrl="~/" slidingExpiration="true" timeout="43200" />
</authentication>
này ghi lại tốt người dùng nhưng ghi chúng ra sau nửa giờ nếu họ không sử dụng trang web, mặc dù tài sản kiên trì của nó (rememberMeChecked) được đặt thành true và nếu đúng, cookie được đặt hết hạn sau một tháng. Có cái gì tôi đang thiếu ở đây?
Cảm ơn trước, F
Tôi không chắc chắn nếu điều này sẽ tạo ra một sự khác biệt trong trường hợp này ở tất cả, tuy nhiên, có gì sai với việc sử dụng 'FormsAuthentication.RedirectFromLoginPage (userName, rememberMe)'? Có yêu cầu tự tạo vé không? Nếu bạn chỉ định thời gian chờ trong cấu hình thì bạn không cần phải viết thủ công trong mã, AFAIK. Ngoài ra, 'RememberMe' được đặt ở đâu? –