var time = DateTime.Now.AddDays(14);
FormsAuthenticationTicket Ticket = new FormsAuthenticationTicket(1, "1", DateTime.Now, time, true, "normal", FormsAuthentication.FormsCookiePath);
string HashTicket = FormsAuthentication.Encrypt(Ticket);
HttpCookie UserCookie = new HttpCookie(FormsAuthentication.FormsCookieName, HashTicket);
UserCookie.Expires = Ticket.Expiration;
UserCookie.Path = Ticket.CookiePath;
Context.Response.Cookies.Add(UserCookie);
这是我登录的代码,在webservice中,方法名前加了 [WebMethod(EnableSession = true)],代码中的"1"是登录用户编号,现在的问题是不能实现两周免登录效果,浏览器关闭后重新打开,有时就又成未登录状态了,请问我的代码哪儿写的有问题?
谢谢以上各位的回复,Form登录验证问题原来是服务器的问题,在本机上正常,但还是不知道服务器上为什么会出现这样的问题
去掉UserCookie.Path = Ticket.CookiePath;试试
还是不行,一样的问题
查看下cookies的大小是不是超过4kb了
应该不会的,整个网站就用了这一个cookie
WebMethod只是用来请求数据,并返回结果的,建议不要这样写,可以把它写到ashx里面。
换到ashx里也一样的问题啊
可以在浏览器上看看 保存的cookie的详细情况。
在这里:http://q.cnblogs.com/q/34286/
这段只是把Cookies写进去了。查查你登陆检测的地方,是否正确读取到了Cookies,并且数据是否正确。