我正在尝试在我正在开发的c#web应用程序中创建和阅读表单身份验证cookie。
我创建了门票
FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(1, "myData", DateTime.Now, DateTime.Now.AddMinutes(60), true, "Hello");
// Now encrypt the ticket.
string encryptedTicket = FormsAuthentication.Encrypt(authTicket);
HttpCookie authCookie = new HttpCookie(FormsAuthentication.FormsCookieName,encryptedTicket);
//将cookie添加到传出cookie集合中 Response.Cookies.Add(authCookie);
然后当我使用:
检索票证时HttpCookie authCookie = Context.Request.Cookies[cookieName];
FormsAuthenticationTicket authTicket = null;
authTicket = FormsAuthentication.Decrypt(authCookie.Value)
我可以看到authTicket现在拥有所有数据,cookie创建日期,到期日期,名称=“mydata”......等等。
但是dataValue中没有任何内容......我期待“你好”在那里。
当我调试时,我可以看到它在加密之前就在票证中...它在我认为的解密中迷失了吗?
任何帮助?
答案 0 :(得分:0)
尝试使用SetAuthCookie(authCookie)而不是REsponse.Cookies.Add(authCookie)。
答案 1 :(得分:0)
要设置Cookie,请使用FormsAuthentication.FormsCookieName属性,而在阅读时,请使用cookieName
变量。你确定两者都指向同一个cookie吗?同时使用FireBug验证cookie中的值与您在调试时看到的值相同。