【发布时间】:2015-12-29 14:51:51
【问题描述】:
我想知道为什么 asp.net mvc 5 Identity 用户默认使用 string(GUID) 作为 key 而不是 int?
有什么理由这样做吗?我知道可以将密钥更改为 int,但是这种更改是否是好的做法?
可能这个 id 保存在 cookie 中的某个地方,或者在 OAUTH 中使用,不建议这样做?
【问题讨论】:
标签: asp.net-mvc-5 asp.net-identity katana
我想知道为什么 asp.net mvc 5 Identity 用户默认使用 string(GUID) 作为 key 而不是 int?
有什么理由这样做吗?我知道可以将密钥更改为 int,但是这种更改是否是好的做法?
可能这个 id 保存在 cookie 中的某个地方,或者在 OAUTH 中使用,不建议这样做?
【问题讨论】:
标签: asp.net-mvc-5 asp.net-identity katana
我想到的两件事是 int 有一个限制,而 GUID 没有,如果我知道我的 ID 是 76,我可以知道至少 75 个用户的 ID。这通常不会被证明是有问题的,但我可以想象可能的情况。在 cookie 中不使用(至少不直接使用)用户 ID - 使用用户会话,然后通过其 ID 绑定到当前用户。所以我想答案是 90% 的安全性和 10% 的无限用户 ID 的组合。
【讨论】:
可能有点晚了,但我刚刚写了一个答案 - 在默认的 ASP.NET 4.6 模板中修改什么以将用户 pk 更改为不同的类型(在我的情况下为 int)
【讨论】: