Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 客户端和服务器中的Cookie过期日期时间和不同日期_C#_Asp.net - Fatal编程技术网

C# 客户端和服务器中的Cookie过期日期时间和不同日期

C# 客户端和服务器中的Cookie过期日期时间和不同日期,c#,asp.net,C#,Asp.net,我使用以下代码实现自定义的“记住我”: FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, member.UserName, DateTime.Now, DateTime.Now.AddHours(24), true, dataString); string encTicket = FormsAuthentication.Encrypt(ticket); HttpC

我使用以下代码实现自定义的“记住我”:

        FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, member.UserName, DateTime.Now, DateTime.Now.AddHours(24), true, dataString);
        string encTicket = FormsAuthentication.Encrypt(ticket);
        HttpCookie faCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
        faCookie.Expires = ticket.Expiration;
        HttpContext.Current.Response.Cookies.Add(faCookie);
但有些用户无法登录(即使在登录后也会显示登录页面)。
问题似乎是由于客户端的日期与服务器的日期不同(更大)。 那么,“记住我”实现的最佳正确解决方案是什么 要解决此问题,我必须删除此行:

faCookie.Expires = ticket.Expiration;
删除此行后,当用户关闭浏览器时,他必须登录(cookie不会持久化)。
解决方案是什么?

您可以获取客户端日期/时间,并将其用于Cookie,而不是服务器时间

有一个很好的答案向你展示了一个很好的方法;基本上,用客户机日期/时间填充一个隐藏字段,并在回发时获取它

您可以在母版页上隐藏此字段,以便客户的日期/时间始终可用。不需要只出现在登录屏幕上