我的问题是我有一个asp.net解决方案,它使用一个单独的项目进行日志记录,现在我希望日志能够保存登录用户。 Windows身份验证用于webapp,应用程序池在服务帐户下运行。因此,当我通过方法(静态)调用记录器时,我希望记录器选择登录用户。我目前唯一得到的是应用程序池运行的服务帐户。
有关如何从webapp获取用户的任何想法吗?
答案 0 :(得分:2)
您可以使用HttpContext.Current.User.Identity.Name
。我认为HttpContext.Current
即使在单独的项目中也应该正确初始化。
答案 1 :(得分:2)
确保您的线程主体与System.Web.HttpContext.Current.User
在global.asax中的Application_AuthenticateRequest
方法结束时,您可能需要以下内容:
System.Threading.Thread.CurrentPrincipal = System.Web.HttpContext.Current.User;
答案 2 :(得分:0)
是。显然不是来自记录器。你需要以某种方式访问HttpRequest - 在页面等。
因此,它在应用程序中嵌入的日志框架中是可行的,它不能从不同的级别实现。
用户将被记录在请求级别属性中。