我有一个 ASP.NET 应用程序,它使用 nHibernate 的 IPreUpdateListener 记录审计报告。为了在监听器事件中设置当前用户,我使用了 System.Security.Principal.WindowsIdentity.GetCurrent()。这在我的机器上调试时效果很好,但是当我将它移动到登台服务器时,我得到的是 ASP.NET 进程凭据,而不是请求用户。
在 ASP.NET 页面中,我可以使用 Request.LogonUserIdentity(因为我使用的是集成身份验证,所以效果很好),但是如何直接引用该用户而无需将其直接传递给我的事件?我不想通过管道传递这些信息,因为它确实不属于中间事件/调用。