Javascript 检索浏览我的asp.net web应用程序的客户端的windows用户名

Javascript 检索浏览我的asp.net web应用程序的客户端的windows用户名,javascript,c#,asp.net,Javascript,C#,Asp.net,我知道还有其他类似的问题,但没有一个答案对我有帮助。 我在服务器上的IIS中托管了一个ASP.NET web应用程序。 服务器具有windows用户名的windows操作系统,假设为:ServerDomain/ServerUserName。 我有一个Main.aspx页面。该页面有一个链接标记: <a href="#" class="linkbutton" onclick="resendHandle(this)">Resend</a> 现在,假设一个客户机正在浏览我的

我知道还有其他类似的问题,但没有一个答案对我有帮助。 我在服务器上的IIS中托管了一个ASP.NET web应用程序。 服务器具有windows用户名的windows操作系统,假设为:ServerDomain/ServerUserName。 我有一个Main.aspx页面。该页面有一个链接标记:

<a href="#" class="linkbutton" onclick="resendHandle(this)">Resend</a> 
现在,假设一个客户机正在浏览我的网站,该客户机的windows操作系统的用户名为:ClientXDomain/ClientXUserName。 单击“重发”链接后,该控件将流向resendHandle Java脚本函数,并在“提交”之后流向Main.aspx.cs(代码文件后面)中的重发方法。在这个方法中,我想检索客户端windows用户名,它是:ClientXDomain/ClientXUserName。显然,aspx.cs是一个服务器代码,因此如果我在该方法中检查那里的用户标识,我将得到:ServerDomain/ServerUserName。但正如我所提到的,我想在这个方法中获得:ClientXDomain/ClientXUserName。 clientWindowsName是在setCurrentUser的帮助下从服务器方法访问的,因此我可以将clientWindowsName变量值(在resendHandle java脚本函数中)传输到服务器大小。 问题是

alert(clientWindowsName );
始终为我返回空值:

var clientWindowsName = '<%=Page.User.Identity.Name%>';
var clientWindowsName='';
还有我尝试过的其他选择。 仅适用于:

var clientWindowsName = '<%=Request.LogonUserIdentity.Name.ToString()%>';
var clientWindowsName='';
它会提醒NT AUTHORITYIUSR

但是没有一个选项给我想要的用户名:ClientXDomain/ClientXUserName

那么,我怎样才能得到它呢?请注意,我试图在Java脚本函数中获取值,也许我应该尝试在脚本标记之外进行。谢谢

编辑01:我的web配置包含:

 <authentication mode="Windows"/>


我认为您需要使用WIndows身份验证而不是表单身份验证来配置您的网站,就像这样

我必须禁用匿名身份验证。

启用模拟,这将帮助您获得登录的用户身份。 在web.config中,或者可以在IIS服务器上设置。请检查如何设置。但这是您缺少的

 <identity impersonate="true" />

您好,您也需要以这种方式设置模拟。如果用户位于active directory中,则可以将其身份传递给代码,否则您将获得IIS下承载该用户的帐户上的身份


谢谢,但我已经在我的web配置中使用了authentication mode=“Windows”,请参阅问题中的Edit 01。请检查我的答案,希望它有用。我们在我们的项目中正在使用它,应该同时使用windows身份验证和模拟
 <identity impersonate="true" />