Asp.net mvc 5 我可以将asp.net mvc 5身份用户ID从字符串(GUID)更改为int吗

Asp.net mvc 5 我可以将asp.net mvc 5身份用户ID从字符串(GUID)更改为int吗,asp.net-mvc-5,asp.net-identity,katana,Asp.net Mvc 5,Asp.net Identity,Katana,我想知道为什么asp.net mvc 5 Identity用户在默认情况下使用字符串(GUID)作为键而不是int 有什么理由这样做吗?我知道可以将密钥更改为int,但这种更改是否是一种良好的做法 可能这个ID保存在cookie中的某个地方,或者在OAUTH中使用,不建议这样做?我想到的两件事是int有一个限制,而as-GUID没有,如果我知道我的ID是76,我可以知道至少75个以上用户的ID。这通常不会被证明是有问题的,但我可以想象它可能出现的情况。Cookie中不使用用户Id(至少不直接使用

我想知道为什么asp.net mvc 5 Identity用户在默认情况下使用字符串(GUID)作为键而不是int

有什么理由这样做吗?我知道可以将密钥更改为int,但这种更改是否是一种良好的做法


可能这个ID保存在cookie中的某个地方,或者在OAUTH中使用,不建议这样做?

我想到的两件事是int有一个限制,而as-GUID没有,如果我知道我的ID是76,我可以知道至少75个以上用户的ID。这通常不会被证明是有问题的,但我可以想象它可能出现的情况。Cookie中不使用用户Id(至少不直接使用)-使用用户会话,然后通过其Id绑定到当前用户。因此我猜答案是90%更安全,10%不受限制的用户Id。

可能有点晚,但是我刚刚就这个问题写了一个答案——在默认的ASP.NET 4.6模板中修改什么以将用户pk更改为不同的类型(在我的例子中是int)


很好的论点,但是asp.net是否在会话中存储此用户id?或者它可能存储了其他东西?这是一个很好的论点,因为我可以看到ID在几种情况下被传递。OpenId连接令牌可能包含用户ID,我也知道默认的“确认您的电子邮件”代码包括用户ID而不是用户名。虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。-@YSC-虽然我大体上完全同意,但在这种特殊情况下,这样做是没有意义的:首先,链接到另一个so答案(因此我相当确定答案将保持不变),其次,这个答案很长,重新发布在这里没有意义。你是对的。很抱歉,我在复习时没有花足够的时间。谢天谢地,国旗有争议,你的答案现在被删除的可能性很小。