2014-06-04 66 views
1

我需要幫助檢索當前用戶的名稱後,他們已登錄到網站或自動獲得訪問,因爲他們登錄到域的計算機與asp.net 4.0(最好VB)從活動directoy檢索當前用戶的名稱

我嘗試了以下調用

HttpContext.Current.Profile.UserName 

HttpContext.Current.User.Identity.Name 

,但他們只是返回空白。

我沒有活動目錄的經驗,我發現的大部分假設程序想要讀取,寫入和更新目錄服務。

更新現在我已經試過

Dim id As WindowsIdentity = WindowsIdentity.GetCurrent() 
Dim User As WindowsPrincipal = New WindowsPrincipal(id) 
Return User.Identity.Name 

,並返回我的名字作爲IIS APPPOOL \ ASP.NET V4.0

更新2

Environment.UserName.ToString() 

回報ASP.NETv4。 0

我也改變了

在web.config中返回true,返回NT AUTHORITY \ USR作爲當前用戶,這與我期望的基於我的搜索的內聯一致。我仍然不確定爲什麼當impersonate = false時系統返回asp.net應用程序池而不是用戶名。

回答

1

首先確保你的web.config配置爲這樣:

<authentication mode="Windows"> 

</authentication> 

其次確保在IIS Web應用程序配置爲使用Windows集成(NTLM)認證。

下面是關於這一個像樣的文章:http://www.asp.net/mvc/tutorials/older-versions/security/authenticating-users-with-windows-authentication-cs

+0

由於原來的IT部門沒有配置服務器和IIS以正確的東西,他們安裝了windows身份驗證或IIS啓動之後,它的工作。 .. IT部門應該站在一旁,讓我們完全控制我們自己的本地開發服務器的另一個原因...... – Reahreic

+0

太棒了!我可以獲得加分努力嗎? – TrevorBrooks

相關問題