string domainAndName = Page.User.Identity.Name;
string[] infoes = domainAndName.Split(new char[1] { '\\' }, StringSplitOptions.RemoveEmptyEntries);
string userDomainName = "";
string userName = "";
if (infoes.Length > 1)
{
userDomainName = infoes[0];
userName = infoes[1];
}
需要注意的地方(可能出现问题的地方已经解决方案):
1.将IIS Authentication设置为:Windows Authentication,并且只有这一项
2.在ASP.Net的Web.Config中添加:<identity impersonate="true"/> <authentication mode="Windows"/>
3.发布到IIS后,将Application Pool选择为Classic的
4.将IIS的 ISAPI and CGI Restrictions设置为Allowed
以上是查阅很多资料之后总结的心得。
/// ASP //
<html>
<body>
<p>
<b>LOGON_USER:</b>
<%Response.Write(Request.ServerVariables("LOGON_USER"))%>
<p>
<b>REMOTE_USER:</b>
<%Response.Write(Request.ServerVariables("REMOTE_USER"))%>
<p>
<b>AUTH_USER:</b>
<%Response.Write(Request.ServerVariables("AUTH_USER"))%>
<p>
<b>You are browsing this site with:</b>
<%Response.Write(Request.ServerVariables("http_user_agent"))%>
</p>
<p>
<b>Your IP address is:</b>
<%Response.Write(Request.ServerVariables("remote_addr"))%>
</p>
<p>
<b>The DNS lookup of the IP address is:</b>
<%Response.Write(Request.ServerVariables("remote_host"))%>
</p>
<p>
<b>The method used to call the page:</b>
<%Response.Write(Request.ServerVariables("request_method"))%>
</p>
<p>
<b>The server's domain name:</b>
<%Response.Write(Request.ServerVariables("server_name"))%>
</p>
<p>
<b>The server's port:</b>
<%Response.Write(Request.ServerVariables("server_port"))%>
</p>
<p>
<b>The server's software:</b>
<%Response.Write(Request.ServerVariables("server_software"))%>
</p>
</body>
</html>