[英]Get UserName in Web App
我有一个托管在服务器上的ASP.net应用程序。 我想从系统获取客户端用户名,并使用该名称作为保存在服务器上的XML文件的标题。 我尝试了各种不同的方法,例如:Environment.UserName();。 WindowsIdentity.GetCurrent();
但是,返回的只是服务器上的NetworkService帐户名。
谁能协助这个。
谢谢
假定您的应用程序已设置身份验证 (“表单”或“ Windows身份验证”),则可以通过以下方式获取当前用户的名称:
HttpContext.Current.User.Identity.Name
如果您的用户通过了身份验证 ,则可以使用User.Identity.Name
尝试这个:
HttpContext.Current.User.Identity.Name
仅当通过表单/成员身份验证或Windows验证用户身份时,此方法才有效,您可以事先检查:
string userName = "Anonymous";
if (User.Identity.IsAuthenticated)
userName = HttpContext.Current.User.Identity.Name
您的Web应用程序正在NetworkService帐户下运行(默认情况下)。 如果您想知道用户NT帐户的用户名,则应检出模拟 。 这样,该应用程序将使用用户的凭据运行。
对于公共网站,这是不可能的,也不应该这样做。 但是公司内部的应用程序可以这样做。
您希望Web客户端的用户名和WindowsIdentity或Env.UserName返回您服务器端的用户名,只有在启用身份验证后,才可以与Web客户端用户名相同。
我认为要解决您的问题,您应该查看Request标头,在这些标头之一中,应该有一个用户名或useragent字符串告诉您您需要什么。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.