【发布时间】:2014-10-01 19:55:51
【问题描述】:
我有一个网站,它使用带有服务 ID 的应用程序池连接到数据库。我希望能够在网页上填充一个文本框,显示他们的实际 Windows 登录名,而不是与应用程序池关联的服务 ID。我想要这个,所以我可以使用这些信息对网格视图进行一些过滤,该网格视图根据用户名显示数据库中的一些数据。目前我已经尝试了几种不同的方法。
Environment.UserName
这将获取用于访问数据库的服务 ID。
System.Security.Principal.WindowsIdentity.GetCurrent().Name;
这也让我获得了用于访问数据库的服务 ID。
//Both of these return the same results described below.
HttpContext.Current.User.Identity.Name;
//and
System.Threading.Thread.CurrentPrincipal.Identity.Name;
这两个有点奇怪。当我通过 vs2010 进行调试时,他们得到了我的用户名,但是当我将文件复制到服务器时,这将在服务器上运行并使用应用程序池运行它,它什么也得不到。我已将其设置为在 home.aspx 页面上的文本框中显示。
任何对此的帮助将不胜感激,因为我到处寻找并且找不到任何特定于我的情况的信息。
提前致谢!!
当前使用的实际代码:(从服务器运行时不返回任何内容)
if (!IsPostBack)
{
string filterName = HttpContext.Current.User.Identity.Name;
IDFilterTextBox.Text = filterName;
}
已编辑:包含我尝试过的新方法。
【问题讨论】:
标签: asp.net c#-4.0 iis-7 windows-server-2008-r2 application-pool