C# ASP.NET窗体身份验证到期

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

有人能给我解释一下ASP.NET表单身份验证是如何工作的吗?因为我似乎不了解它,而且我一直被注销

目前,我有用户名、密码和“让我登录”复选框。根据这些值,我将创建一个票证和cookie,如下所示:

    // 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,有什么用?