FormsAuthenticationTicket.Version返回无效的版本号

时间:2011-03-08 22:58:00

标签: c# .net asp.net forms-authentication

FormsAuthenticationTicket的版本号中是否有任何限制。

我尝试使用表单身份验证创建一个ASP.NET cookie,版本号较大(例如:1234567需要此号码才能进行标识)。但是当我解密cookie时,我得到135作为版本号。

最初删除了旧表单身份验证Cookie,以便添加新信息。

Response.Cookies.Remove(FormsAuthentication.FormsCookieName);

以下是我用于创建FormsAuthentication cookie的代码。

FormsAuthenticationTicket newAuthTicket = new FormsAuthenticationTicket(1234567, un, DateTime.Now, DateTime.Now.AddHours(5F), false, user_data);
HttpCookie newauthCookie = new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(newAuthTicket));

Response.Cookies.Add(newauthCookie);

检索cookie后,我得到的版本号是135.这个数字因版本号不同而不同。

string cookieName = FormsAuthentication.FormsCookieName;
HttpCookie authCookie = Context.Request.Cookies[cookieName];

if (authCookie == null)
{
    return;
}

FormsAuthenticationTicket authTkt = null;
authTkt = FormsAuthentication.Decrypt(authCookie.Value);

if (authTkt == null)
{
    return;
}
int versionID = authTkt.Version;

有人可以告诉我使用这么大的版本号码是不是一个坏主意,或者我错过了这个。

感谢您的帮助, 维杰

1 个答案:

答案 0 :(得分:0)

确保故障单名称不会传递为null。