2010-04-16 21 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

相关问题