我们有一个ASP.NET Intranet站点,可供物理访问本地计算机或登录本地计算机的用户使用,也可供通过VPN远程连接的用户使用。有没有办法根据用于登录本地计算机的名称或用于VPN的名称自动获取访问该页面的用户的用户名?
答案 0 :(得分:13)
如果您在网页中使用Windows身份验证,则可以使用此功能。
您可以使用Page.User.Identity.Name
或更完整的System.Web.HttpContext.Current.User.Identity.Name
。
在这里阅读更多相关信息:
Enabling Windows Authentication within an Intranet ASP.NET Web Application
但是,如果您使用表单身份验证,则必须自己跟踪当前用户,最常见的方法是将他们的登录名存储在Session变量中。
答案 1 :(得分:3)
获取User
信息如下:
User.Identity.Name \\ Get the User name
User.Identity.AuthenticationType \\ What is the Authentication type
User.Identity.IsAuthenticated \\ Is he authenticated?
User.IsInRole("Administrators") \\ Is he administrator?
答案 2 :(得分:2)
如果身份验证设置为执行集成Windows身份验证,那么您应该可以通过访问
User.Identity.Name
来获取
答案 3 :(得分:1)
您可以使用
Page.User.Identity.Name
答案 4 :(得分:0)
如果身份验证是Windows,这应该会有所帮助:
IIdentity WinId= HttpContext.Current.User.Identity;
WindowsIdentity wi = (WindowsIdentity)WinId;