簡體   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