FormsAuthenticationTicket的版本號中的大小/數字是否有任何限制。FormsAuthenticationTicket.Version返回無效版本號
我試圖使用表單身份驗證創建一個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;
有人可以讓我知道如果這是一個壞主意,用這麼大的版本號,還是我失去了這個東西。
感謝您的幫助, 維傑
你爲什麼要在身份驗證中存儲身份信息?難道你不能對'UserData'做同樣的事嗎? – 2011-03-09 02:13:18
您還發布在:http://forums.asp.net/p/1661433/4334634.aspx/1?Re+FormsAuthenticationTicket+Version+returns+invalid+version+number – 2011-03-09 02:14:50
@Daniel:我有其他用戶數據存儲在cookie的UserData部分。但是我仍然不明白爲什麼當VersionID屬性應該能夠獲取Int值時值被更改。 是的,我沒有發佈它在asp.net論壇希望不同的建議。 :) – Adi 2011-03-09 19:45:17