子站登出代码
if (Session != null)
Session.Abandon();HttpContext.Current.Response.Cookies.Clear();
主站退出的时候调用子站web服务通知子站 再次登录发现COOKIE依然存在
在 HttpContext.Current.Response.Cookies.Clear();
然后再登录的地方发现代码
int TimeOut = ConfigurationManager.AppSettings.GetString("timeout").ToInt32(5);
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, userName, DateTime.Now, DateTime.Now.AddMinutes(TimeOut), false, cook.ToString());
string authTicket = FormsAuthentication.Encrypt(ticket);
HttpCookie coo = new HttpCookie(FormsAuthentication.FormsCookieName, authTicket);
HttpContext.Current.Response.Cookies.Add(coo);
加上
coo.Expires = DateTime.Now.AddMinutes(TimeOut);
这句后 单点登出就有效了
不设置COOKIE的过期时间 过期时间的默认值一直是 0001/1/1,即当前COOKIE有效的。 而HttpContext.Current.Response.Cookies.Add(coo); 似乎清除不了COOKIE
身份验证 每次先找COOKIE cookie没过期则表示身份仍然有效