表单身份验证和除空白数据值字段外的所有正常

时间:2010-01-23 13:20:39

标签: c# asp.net

我正在尝试在我正在开发的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中没有任何内容......我期待“你好”在那里。

当我调试时,我可以看到它在加密之前就在票证中...它在我认为的解密中迷失了吗?

任何帮助?

2 个答案:

答案 0 :(得分:0)

尝试使用SetAuthCookie(authCookie)而不是REsponse.Cookies.Add(authCookie)。

http://msdn.microsoft.com/en-us/library/aa480476.aspx

答案 1 :(得分:0)

要设置Cookie,请使用FormsAuthentication.FormsCookieName属性,而在阅读时,请使用cookieName变量。你确定两者都指向同一个cookie吗?同时使用FireBug验证cookie中的值与您在调试时看到的值相同。