我创建了一个asp.net应用程序,并且我已经编写了以下代码来获取用户名
string username= System.Web.HttpContext.Current.User.Identity.Name.ToString() ;
在我在IIS中托管我的应用程序之前它正在工作
在IIS中托管应用程序后,它仍然只显示用户名作为我的用户名..
但我需要访问应用程序的客户端的用户名
访问我的应用程序无需身份验证。任何人都可以访问我的应用程序,我需要获取客户端的用户名
有没有办法实现这个目标?
由于
答案 0 :(得分:0)
如果应用程序不需要身份验证(未设置身份验证元素的mode属性或在web.config文件中将其设置为None)
<authentication mode="None" />
并且在IIS中启用了匿名访问(默认情况下),HttpContext.User属性返回默认的匿名主体,这是所有用户的主体。
要获取每个用户的名称,您需要实施一种身份验证方案 - Windows,Forms或Passport。例如,要在Intranet站点上获取用户的Windows帐户名,您需要将身份验证模式设置为Windows,并将IIS身份验证设置为Integration Windows身份验证(并禁用匿名身份验证),然后使用User.Identity.Name。 / p>