繁体   English   中英

ASP.NET在页面外获取Windows用户名

[英]ASP.NET get windows username outside of page

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

我相信在页面上使用User.Identity.Name是执行此操作的正确方法,但仅在页面上的报告生成类中不可用。 有没有一种方法可以通过错误记录器类获取它,而无需将其作为附加参数传递。

有数百种报告类,因此我很害怕必须遍历并为每个类添加一个参数。

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

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

您的报告类别将吸引合适的用户。

如果您的报告类可以引用System.Web程序集,并且您愿意修改代码,则还可以执行以下操作:

HttpContext.Current.User.Identity.Name

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM