簡體   English   中英

使用ADFS時在ELMAH中丟失用戶信息

[英]Losing USER information in ELMAH when using ADFS

我有一個使用ELMAH記錄未處理異常的MVC Web應用程序。 我現在正從Windows身份驗證轉移到ADFS身份驗證。 該應用程序已經過修改,並且可以正常運行。 但是現在當我檢查錯誤時,用戶信息不再存在。 這很有意義,因為ELMAH使用上下文身份而不是聲明來檢索此信息。 你們當中有人知道我該怎么做才能再次記錄此信息嗎?

如果您可以接受小技巧,則可以使用錯誤過濾鈎子豐富ELMAH錯誤 簡而言之,您需要在Global.asax.cs文件中實現ErrorLog_Filtering方法:

void ErrorLog_Filtering(object sender, ExceptionFilterEventArgs args)
{
    var httpContext = args.Context as HttpContext;
    if (httpContext != null)
    {
        var error = new Error(args.Exception, httpContext);
        error.User = GetUserFromDatabase();
        ErrorLog.GetDefault(httpContext).Log(error);
        args.Dismiss();
    }
}

在示例中,我User虛擬方法的值更新了User屬性。 您要如何實現它取決於您如何從ADFS獲取當前登錄的用戶。 最后,我再次記錄該錯誤並消除了最初的(少用戶)錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM