2012-02-28 37 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 

感谢您对那些谁看这个!

相关问题