public void SetCookie(string userName, string role,string cookieValueName) {FormsAuthentication.FormsCookieName FormsAuthenticationTicket myTick = new FormsAuthenticationTicket(1, userName, System.DateTime.Now.AddMinutes(30),DateTime.Now, false, role); string encryptTick=FormsAuthentication.Encrypt(myTick); HttpCookie myCookie = new HttpCookie(cookieValueName,encryptTick); myCookie.Expires = System.DateTime.Now.AddMinutes(30); HttpContext.Current.Response.Cookies.Add(myCookie); }
这是我登陆后设置cookie的方法,本来cookieValueName是用FormsAuthentication.FormsCookieName替代的,突然有一天发总是得到null值,(目前情况也不明,可能是多个cookie的问题[也不太像,之前好好的,突然就变了])
之后,直接改名传固定值"CQSPACE",之后也一直发现得不到值,换了N种Cookie写法,N种修改方法,也发现无效,两天后,新建一工程,发现可以得到值,就是自己的项目无法值,今天,新建了几个值,发现就除了CQSPACE之外的值都可以得到,就是得不到CQSPACE的值..突然灵感一到,才想起了FromsAuthentication.FormsCookieName的值也叫cqspace(这里大小写是不区分的)
最终解决方案:把WebConfig的<form name="cqspace" de../>中的name="cqspace"删除即可..
郁闷的三天过去..终于可以再好过一点了....