我尝试了很多选项来让当前用户登录Windows。 我有这个网络用户。
HttpContext.Current.User.Identity.Name
我没有用户登录表单,我不想把它放在我的proyect中,因为我不需要这个。
用
Environment.UserName
我有这个=" ASP.NET V4.0集成"
我试图通过此代码获取当前用户,但我有一个包含4个用户,2个管理员,一个受邀用户和我当前用户的对象,但我找不到区别之处。
SelectQuery sQwuery = new SelectQuery("Win32_UserAccount", "Domain='" + System.Environment.MachineName + "'");
ManagementObjectSearcher mSearcher = new ManagementObjectSearcher(sQwuery);
foreach (ManagementObject mObject in mSearcher.Get())
{
var users= mObject;
}
那是我的4个用户
base = {\\DOOKU\root\cimv2:Win32_UserAccount.Domain="DOOKU",Name="Administrador"}
+ [1] {\\DOOKU\root\cimv2:Win32_UserAccount.Domain="DOOKU",Name="Administrator"} object {System.Management.ManagementObject}
+ [2] {\\DOOKU\root\cimv2:Win32_UserAccount.Domain="DOOKU",Name="Invitado"} object {System.Management.ManagementObject}
+ [3] {\\DOOKU\root\cimv2:Win32_UserAccount.Domain="DOOKU",Name="MyUser"} object {System.Management.ManagementObject}
我这个案子我需要最后一个 还有其他选择可以找到这个吗? 感谢。
答案 0 :(得分:1)
使用“Environment.UserName
”,您将检索与承载IIS应用程序的IIS 应用程序池关联的用户标识。您需要当前运行该站点的经过身份验证的用户的标识。
如果您在网站上匿名访问 已禁用和 Windows身份验证 已启用,那么您真的应该利用< / p>
HttpContext.Current.User.Identity.Name
获取与运行应用程序的用户关联的名称。我在你的原始帖子中注意到你“不需要那个”,但是对于我所理解的是你的要求,我想你做到了。当前的HTTP上下文保存用户身份。