首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让ASP.NET MVC IAuthorizationFilter尊重IgnoreRoute的

如何让ASP.NET MVC IAuthorizationFilter尊重IgnoreRoute的
EN

Stack Overflow用户
提问于 2015-04-29 19:26:02
回答 1查看 528关注 0票数 0

我使用流行的Elmah.MVC error logging NuGet包。这样我就可以导航到/elmah来查看我的错误日志。我有以下IgnoreRoute语句,以便MVC忽略/elmah路由:

代码语言:javascript
复制
routes.IgnoreRoute("elmah");
routes.IgnoreRoute("elmah/{*pathinfo}");

我已经编写了以下授权过滤器。当我导航到/elmah时,如何停止执行下面的过滤器。当然,它肯定有某种方法来尊重我告诉它忽略的路由?

代码语言:javascript
复制
public class MyFilterAttribute : FilterAttribute, IAuthorizationFilter
{
    public void OnAuthorization(AuthorizationContext filterContext)
    {
        // I don't want /elmah routes to execute this.
    }
}
EN

回答 1

Stack Overflow用户

发布于 2015-05-21 17:06:36

解决方案是检查正在执行的ControllerName,如果是Elmah,则返回并忽略此请求。

代码语言:javascript
复制
public class MyFilterAttribute : FilterAttribute, IAuthorizationFilter
{
    public void OnAuthorization(AuthorizationContext filterContext)
    {
        // I don't want /elmah routes to execute for this filter.
        string controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
        if (string.Equals(controllerName, "Elmah", StringComparison.Ordinal))
        {
            return;
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29942318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档