是否可以在不使用activex对象的情况下在远程服务器中托管的asp.net中获取客户端Windows用户名?
我使用了以下代码
Response.Write("HttpContext.Current.Request.LogonUserIdentity.Name " & HttpContext.Current.Request.LogonUserIdentity.Name)
Response.Write("<br/>")
Response.Write("HttpContext.Current.Request.IsAuthenticated " & HttpContext.Current.Request.IsAuthenticated)
Response.Write("<br/>")
Response.Write("HttpContext.Current.User.Identity.Name " & HttpContext.Current.User.Identity.Name)
Response.Write("<br/>")
Response.Write("System.Environment.UserName " & System.Environment.UserName)
Response.Write("<br/>")
Response.Write("Security.Principal.WindowsIdentity.GetCurrent().Name() " & System.Security.Principal.WindowsIdentity.GetCurrent().Name())
Response.Write("<br/>")
但它总是给我服务器用户名而不是客户端用户名。
答案 0 :(得分:-1)
您可以尝试使用ServerVariables
string Hostname=Request.ServerVariables["REMOTE_HOST"];
string Username=Request.ServerVariables["REMOTE_USER"];
答案 1 :(得分:-2)
如果您使用“Windows身份验证”
,此行将起作用Response.Write("HttpContext.Current.User.Identity.Name " & HttpContext.Current.User.Identity.Name)
参考:MSDN