ASP.NET获取页面外部的windows用户名

ASP.NET获取页面外部的windows用户名,asp.net,Asp.net,我有一个使用windows身份验证的现有ASP.NET报告应用程序。很多报告生成代码都在不同的类中,并且有一个我没有编写的核心错误记录器,我相信这个错误记录器是为windows应用程序构建的,因为它使用WindowsIdentity.GetCurrent().Name。对于ASP.NET,我相信这将返回在服务器上运行ASP.NET页面的帐户 我相信在页面上使用User.Identity.Name是正确的方法,但它不能仅在页面上的报表生成类中使用。有没有一种方法可以通过error logger类获

我有一个使用windows身份验证的现有ASP.NET报告应用程序。很多报告生成代码都在不同的类中,并且有一个我没有编写的核心错误记录器,我相信这个错误记录器是为windows应用程序构建的,因为它使用WindowsIdentity.GetCurrent().Name。对于ASP.NET,我相信这将返回在服务器上运行ASP.NET页面的帐户

我相信在页面上使用User.Identity.Name是正确的方法,但它不能仅在页面上的报表生成类中使用。有没有一种方法可以通过error logger类获得它,而不将其作为额外参数传递


有数百个报表类,因此我担心必须遍历并为每个报表类添加一个参数。

如果您可以在web.config中使用模拟:

....
<authentication mode="Windows"/>
<identity impersonate="true"/>
....

但是,请确保调用方来自ASP.NET请求,否则它将抛出nullref。

Ah当然,HttpContext.Current.User.Identity.Name现在看起来很明显,我将修改错误记录器,以在它来自ASP.NET时获取此属性。
HttpContext.Current.User.Identity.Name