2011-10-03 56 views
1

我想改变我们的c#asp.net mvc应用程序以使用Windows身份验证以及表单身份验证(如当前实现的)。将唯一字符串转换为唯一整数

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

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

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

回答

2

GetHashCode()在框架版本,操作系统平台等之间的变化,所以你不能依靠它作为DB PK使用。

如果您正在使用Windows身份验证,那么维护该身份对调试,疑难解答和可能的模拟很有用。为什么不使用Windows用户名 - >用户标识映射将其存储在表中,以便您可以查找给定用户名的用户ID?

2

Do not use GetHashCode()

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

相关问题