2010-04-16 42 views
1

是否到FormsAuthentication.SetAuthCookie(...)呼叫時username字符串的原始數據類型做出至於安全或代碼的可維護性有什麼區別?是否用戶ID數據類型影響FormsAuthentication.SetAuthCookie(UserId.ToString(),FALSE)?

據我所知,該cookie被加密和用於識別每個請求的用戶。我很好奇它是否應該在我的數據庫會影響我的Users表的主鍵的設計,例如。 Guid VS int或唯一的用戶名字符串。

回答

4

FormsAuthentication.SetAuthCookie沒有密鑰的知識。它期望一個用戶名,這是ASP.Net提供商之間絕大多數互操作性的通用語言。

所以,不,你的密鑰可能是一個10mb的blob,你仍然可以將用戶名(通常是一個可讀的字符串)傳遞給FormsAuthentication.SetAuthCookie。

我得到的是UserId不存儲在auth票證中,因此UserId的數據類型或大小對auth票證cookie沒有影響。

+0

+1對'您的鑰匙可能是10mb blob' :-) – 2010-04-20 05:16:29

+0

感謝您的回答,Sky。如果UserId沒有存儲在cookie中,那麼我認爲票證必須包含它,但那麼包含UserId的票證存儲在哪裏?我使用Guid UserId = new Guid(System.Web.HttpContext.Current.User.Identity.Name); - 不知道這是否是最佳做法。 – 2010-04-20 11:04:53

+0

@freshcode - ticket == cookie。一樣。 UserId不會傳遞或存儲在任何cookie中。用戶名存儲在cookie中。這是'自然鍵',用於在必要時獲取用戶的位置,在該位置可以找到代用鍵的UserId。 – 2010-04-23 18:10:04

相關問題