获取不带windows身份验证的windows登录名

本文关键字:windows 登录 身份验证 获取 | 更新日期: 2023-09-27 17:57:47

我正试图从我的asp.net应用程序中获取windows Logon用户名。这是我的代码

string user_name = Request.ServerVariables.Get("LOGON_USER");

这在我的本地环境中运行良好,但当我在IIS上上传相同的代码时,它会给我空白,甚至我试图通过获得登录用户名

HttpContext.Current.User.Identity.Name

但它让我一片空白。一旦我将IIS身份验证启用为Windows身份验证并禁用Antonyms身份验证,它就可以正常工作了。有人能告诉我如何得到这个吗。如果我用错了方法,请纠正我。

提前谢谢。

编辑:我不想设置Windows身份验证,所以,在ASP.NET页面级别的身份验证中,通过在Web.Config 中设置是否可能

<allow user="*"/> or <deny user="?"/>

如果我错了,请纠正。

获取不带windows身份验证的windows登录名

为了获得用户名,除了匿名身份验证之外,还需要使用一些东西。

使用匿名身份验证,您无法获取本地用户的用户名。即使这是可能的,但对于面向公众的b/c网站来说,这是不现实的——你可以有多台具有相同本地用户名的计算机。

此外,由于您提到这是公司域之外的面向外部的网站,因此Windows身份验证不是一个选项。Windows身份验证主要用于内部intranet应用程序。

如果你想唯一地识别每个用户,并且拥有Forms身份验证,你可能想要的是它,ASP.NET支持它,并提供了一个开箱即用的控件,允许用户为你的网站注册和创建帐户。查看此链接http://msdn.microsoft.com/en-us/library/7t6b43z4.aspx

回答:"在ASP.NET页面级别的身份验证中,是否可以通过在Web.Config中进行设置?"在web.config中设置<allow user="*"/> or <deny user="?"/>的授权规则可以控制给定用户的authorization(在这种情况下,给定用户是否可以访问某个页面),前提是该用户已成为authenticated,但不会影响所使用的authentication方法或成员资格提供程序。因此,此web.config设置将不允许您使用匿名身份验证获取用户名。