2012-02-28 69 views
0

在服務器上,我獲取當前登錄的用戶名,但是從遠程客戶端獲取服務器名稱/管理員。如何通過IIS 7.5和ASP.NET獲取Windows身份驗證用戶名

下面是代碼:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    'Grab username from Windows Authentication, remove the 'HHI\', and assign to empName 
    'empname = Replace(HttpContext.Current.User.Identity.Name.ToUpper, "HHI\", "") 
    'empname = Replace(Page.User.Identity.Name, "HHI\", "") 
    empname = Replace(WindowsIdentity.GetCurrent.Name, "HHI\", "") 
    'empname = Replace(System.Threading.Thread.CurrentPrincipal.Identity.Name, "HHI\", "") 
    Response.Write(empname) 
End Sub 

我試圖用「網絡服務」應用程序池,與指定客戶和管道模式設置爲「綜合」和「經典」。

上述代碼在Server 2003/IIS6中正常工作,但我無法使其在Windows Server 2008 R2/IIS 7.5上正常工作。

任何和所有幫助讚賞!

回答

0

我發現了這個問題。顯然,在RDP進入服務器時,我在Win7的「憑證保險庫」中保存了本地管理員權限。默認情況下,這些憑據在枚舉時覆蓋我的網絡用戶名。

下面的代碼工作正常:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    'Grab username from Windows Authentication, remove the 'HHI\', and assign to empName 
    empname = Replace(HttpContext.Current.User.Identity.Name.ToUpper, "HHI\", "") 
    Response.Write(empname) 
End Sub 

感謝您對那些誰看這個!

相關問題