我为我的登录系统使用Membership API,一件奇怪的事情一直困扰着我。我允许用户选择是否“记住我”,这意味着是否要创建一个月有效期的持久cookie。如何正确创建ASP.NET Membership Cookie?
在Web.config,我写道:
<authentication mode="Forms">
<forms timeout="60" />
</authentication>
这应该是60分钟的默认会话cookie。
在登录页面的后台代码:
if(Membership.ValidateUser(UsernameTextBox.Text, PasswordTextBox.Text))
{
authCookie = FormsAuthentication.GetAuthCookie(UsernameTextBox.Text, RememberMeCheckBox.Checked);
if(RememberMeCheckBox.Checked)
authCookie.Expires = DateTime.Now.AddMonths(1);
Response.Cookies.Add(authCookie);
Response.Redirect(FormsAuthentication.GetRedirectUrl(UsernameTextBox.Text, RememberMeCheckBox.Checked));
}
结果却是陌生的。我似乎创建了60分钟的持久cookie!这怎么可能?
嗨,这是我的一个误解的地狱!我相信很少有记录,但应该经常需要。你是男人! – Aperture