.NET获取登录用户

本文关键字:用户 登录 获取 NET | 更新日期: 2023-09-27 18:25:08

我的问题是我有一个asp.net解决方案,它使用一个单独的项目进行日志记录,现在我希望日志保存登录的用户。Web应用程序使用Windows身份验证,应用程序池在服务帐户下运行。因此,当我通过一个方法(静态)调用记录器时,我希望记录器能够确定谁是登录用户。我目前唯一得到的是应用程序池运行的服务帐户。

关于如何从网络应用程序中获得用户,有什么想法吗?

.NET获取登录用户

确保线程主体与System.Web.HttpContext.Current.User 相同

在global.asax中的Application_AuthenticateRequest方法结束时,您可能需要以下内容:

System.Threading.Thread.CurrentPrincipal = System.Web.HttpContext.Current.User;

您可能可以使用HttpContext.Current.User.Identity.Name。我认为即使在单独的项目中,HttpContext.Current也应该正确初始化。

是。显然不是来自记录器。你需要以某种方式访问页面等中的HttpRequest。

因此,它在嵌入应用程序的日志框架中是可行的,在不同的级别上是不可行的。

用户将被记录在请求级别属性中。