将唯一字符串转换为唯一整数

时间:2011-10-03 00:12:04

标签: asp.net-mvc asp.net-membership hash

我想改变我们的c#asp.net mvc应用程序以使用Windows身份验证以及表单身份验证(目前已实现)。

目前,我们有许多表引用表单身份验证使用的用户表中的用户ID整数。

是否有合适的方法将Windows身份验证返回的唯一字符串用户名转换为可用作其他表的ID的唯一整数?

一个例子可能是在用户名上使用.GetHashCode(),但是我不确定这是否肯定会创建一个合适的整数(即唯一的,总是在给定相同的用户名时返回相同的整数等)

2 个答案:

答案 0 :(得分:2)

Do not use GetHashCode()

相反,您应该创建一个数据库表,将Windows用户帐户映射到整数用户ID(Users表)。
您还可以在此表中存储有关每个用户的其他信息。

答案 1 :(得分:2)

GetHashCode()在框架版本,操作系统平台等之间进行了更改,因此您不能依赖它作为数据库PK。

如果您正在使用Windows身份验证,那么维护身份验证对于调试,故障排除和可能的模拟非常有用。为什么不将它存储在具有Windows用户名的表中 - > UserID映射,以便您可以查找给定用户名的用户ID?