繁体   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