我认为获取登录用户名很简单,事实上,它适用于堆栈溢出时可用的大多数响应,但是当我发布网站时,所有方法都失败了。任何人都可以指导我从 Windows 获取登录用户的名称,条件如下。
我只需要登录用户名,所以在你写回复时忘记 AD。
我无法更改为 Windows 身份验证模式,因为用户可能是不属于公司但仍可以访问我的 Intranet 网站的访客用户
- 由于用户数超过 6000,因此无法更改用户浏览器设置
我无法禁用匿名身份验证,因为我希望每个人都能使用该网站
我已经尝试过以下解决方案,当我在调试模式下运行网站时一切正常,但是当我在 IIS 上发布网站时都无法返回用户名,所以请帮助我提供一些新的解决方案
string _windowLogonUserName = System.Environment.UserName.ToString()
string _windowLogonUserName =
WindowsIdentity.GetCurrent().Name.Remove(0, _adDomainName.Length + 1)
string _windowLogonUserName =
System.Web.HttpContext.Current.User.Identity.Name.ToString();
System.Security.Principal.WindowsIdentity.GetCurrent().Name;
AppDomain appDomain = Thread.GetDomain();
appDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);
WindowsPrincipal windowsPrincipal = (WindowsPrincipal)Thread.CurrentPrincipal;
Logger.Write("username principal" + windowsPrincipal.Identity.Name);
Request.ServerVariables["LOGON_USER"]