我想改变我们的c#asp.net mvc应用程序以使用Windows身份验证以及表单身份验证(目前已实现)。
目前,我们有许多表引用表单身份验证使用的用户表中的用户ID整数。
是否有合适的方法将Windows身份验证返回的唯一字符串用户名转换为可用作其他表的ID的唯一整数?
一个例子可能是在用户名上使用.GetHashCode(),但是我不确定这是否肯定会创建一个合适的整数(即唯一的,总是在给定相同的用户名时返回相同的整数等)
答案 0 :(得分:2)
相反,您应该创建一个数据库表,将Windows用户帐户映射到整数用户ID(Users
表)。
您还可以在此表中存储有关每个用户的其他信息。
答案 1 :(得分:2)
GetHashCode()在框架版本,操作系统平台等之间进行了更改,因此您不能依赖它作为数据库PK。
如果您正在使用Windows身份验证,那么维护身份验证对于调试,故障排除和可能的模拟非常有用。为什么不将它存储在具有Windows用户名的表中 - > UserID映射,以便您可以查找给定用户名的用户ID?