C# 覆盖全局操作筛选器

C# 覆盖全局操作筛选器,c#,asp.net-mvc-3,ssl,C#,Asp.net Mvc 3,Ssl,我网站上的一些页面需要使用SSL,因此我已将[RequireHttps]添加到相关控制器中。但是,我仍然希望我的大多数页面始终使用非SSL,因此我成功地创建了一个自定义的[DoNotUseHttps]过滤器 为了简化操作,我希望在默认情况下包含此非SSL筛选器,因此我将其添加到global.asax文件中设置的全局筛选器中。然而,我现在似乎已经创建了一个无限循环,每个过滤器都重定向到另一个 这就引出了我的问题。。。是否可以向全局筛选器中添加任何内容,以检测控制器是否已应用了[RequireHtt

我网站上的一些页面需要使用SSL,因此我已将
[RequireHttps]
添加到相关控制器中。但是,我仍然希望我的大多数页面始终使用非SSL,因此我成功地创建了一个自定义的
[DoNotUseHttps]
过滤器

为了简化操作,我希望在默认情况下包含此非SSL筛选器,因此我将其添加到global.asax文件中设置的全局筛选器中。然而,我现在似乎已经创建了一个无限循环,每个过滤器都重定向到另一个


这就引出了我的问题。。。是否可以向全局筛选器中添加任何内容,以检测控制器是否已应用了
[RequireHttps]

当然,您可以查询有关操作和控制器的任何内容。要检查
请求属性

public override void OnActionExecuted(ActionExecutedContext filterContext)
{
    base.OnActionExecuted(filterContext);

    bool requireHttps = filterContext.ActionDescriptor.ControllerDescriptor
        .GetCustomAttributes(typeof(RequireHttpsAttribute), true).Length > 0
 }