C# ASP.NET窗体身份验证到期
有人能给我解释一下ASP.NET表单身份验证是如何工作的吗?因为我似乎不了解它,而且我一直被注销 目前,我有用户名、密码和“让我登录”复选框。根据这些值,我将创建一个票证和cookie,如下所示:C# ASP.NET窗体身份验证到期,c#,asp.net,C#,Asp.net,有人能给我解释一下ASP.NET表单身份验证是如何工作的吗?因为我似乎不了解它,而且我一直被注销 目前,我有用户名、密码和“让我登录”复选框。根据这些值,我将创建一个票证和cookie,如下所示: // Create ticket FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,email,DateTime.UtcNow,DateTime.UtcNow.AddMinutes(30),rememb
// Create ticket
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,email,DateTime.UtcNow,DateTime.UtcNow.AddMinutes(30),remember,String.Empty);
// Encrypt ticket
string cookie_contents = FormsAuthentication.Encrypt(ticket);
// Create cookie
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName,cookie_contents);
if (remember) {
cookie.Expires = DateTime.UtcNow.AddDays(90);
}
cookie.Path = FormsAuthentication.FormsCookiePath;
cookie.Secure = true;
// Add cookie to response
Response.Cookies.Add(cookie);
我希望通过这段代码,我可以登录到我的网站,并假设我选中“保持我的登录”,我保持登录至少90天
然而,我看到的是,我在初次登录后至少30分钟就被注销了(这是为门票预留的时间?)
cookie过期和票证过期之间有什么区别?我如何让自己签名。我是否需要将cookie和ticket都设置为90天?如果可以避免,请不要直接操作cookie。您可以使用
FormsAuthentication.SetAuthCookie(用户名,持久性)
登录用户。这里的Persistent表示“不使用会话cookie”
然后,您应该在web.config中的
<system.web>
<authentication mode="Forms">
<forms timeout="50000000" slidingExpiration="true"/>
</authentication>
</system.web>
cookie呢?使用SSL安全吗?我也在表单标签中添加了requireSSL。滑动过期也会在活动上更新,但无活动又如何呢?i、 e我将关闭浏览器,稍后再回来……上面标签中的yes requireSSL=“true”将使其成为安全cookie。另一个好的标签是enableCrossAppRedirects=“false”好的,我想我知道了,将超时设置为疯狂的30天,滑动过期应该会处理剩余的时间+如果他们不在该时间段内登录,它将过期。Scott Gu提供的博客链接是最好的方法。如果不使用会话cookie,有什么用?