1

我們有一個內部的工作跟蹤系統,有10個人使用。目前我們使用Forms身份驗證。登錄表單由用戶輸入其名稱的文本框組成,然後我們設置表單身份驗證cookie。沒有密碼。ASP.NET MVC Windows認證集成

FormsAuthentication.SetAuthCookie(userName, true); 

我們現在可以通過調用User.Identity.Name使用用戶名保存到數據庫,並在屏幕上顯示的各種控制器。

到目前爲止,這種簡單的方法已經非常完美,但現在我們已經準備好開始使用活動目錄對用戶進行身份驗證。我們希望用戶能夠使用他們的域用戶名和密碼登錄。

所以我們啓用Windows身份驗證。

但問題是,現在User.Identity.Name採用DOMAIN \ USER的格式。假設有可能有一天某些用戶在我們的工作跟蹤系統中將擁有與他們的用戶名不同的域用戶名。

什麼是爲用戶分配「作業跟蹤器用戶名」的最佳方式,以便他們可以用他們的域用戶名登錄,但作業跟蹤器可以使用不同的用戶名登錄作業並顯示用戶名。

我知道我可以使用會話,或者我可以打電話給數據庫,但有沒有更正確的方法來做到這一點?

回答

0

最後我切換到窗體身份驗證,因爲Windows身份驗證不適用於某些Android手機。我還使用ActiveDirectoryMembershipProvider根據域對用戶進行身份驗證。有關更多信息,請參閱有關此主題的其他問題。

0

首先決定你要存儲信息的位置。這可能是一個數據庫,Active Directory或其他。然後決定如何維護它(例如,管理用戶界面,可能受基於角色的安全保護,或者如果它存儲在Active Directory中,則可以將此作業委派給AD管理員)。

之後,它可能會進行查找,並可能將查找到的值緩存在Session中,或者緩存中。

+0

我想將它存儲在數據庫中並緩存它是有意義的,但是如何檢索它? – NoPyGod

+0

我的意思是,是否有一個地方我可以設置它,並像User.Identity.Name – NoPyGod

+0

那樣容易地找回它如果你想要內置的東西,你可以使用ASP.NET Profile屬性:http://msdn.microsoft。 com/en-us/library/2y3fs9xs(v = vs.100).aspx。否則,只需推出自己的。 – Joe