2011-11-22 224 views
0

我通过使用以下代码获取用户名:部署asp.net应用程序

txtName.Text = Environment.UserName;

我已经在IIS中部署了代码,在运行应用程序时,我在文本框中将 用户名变为“NETWORK SERVICE”,而不是记录的用户名。

而我正在使用FORMS身份验证模式。 (此为强制性的)

在此先感谢

回答

0

窗体身份验证意味着您为用户的形式组织,使他们能够进入他们的凭据(也就是他们的用户名和密码),并从现在开始,如果他们已经正确地输入了他们的凭证,就知道他们是谁(通过在浏览器上设置身份验证cookie,并执行其他许多操作)。

当您使用Environment.UserName时,您所做的是在当前应用程序正在运行的权限下获取用户的名称。如果您在IIS6.0中查看应用程序池(AppDomain),那么您应该验证您的网站是否以用户的身份运行网络服务

所以,你必须使用:

username.Text = HttpContext.Current.User.Identity.Name;