2011-10-03 157 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表)的數據庫表。
您還可以在此表中存儲有關每個用戶的其他信息。