我网站上的一些页面需要使用SSL,因此我已将[RequireHttps]
添加到相关控制器中。但是,我仍然希望我的大多数网页始终使用非SSL,因此我成功使用code I found on SO创建了自定义[DoNotUseHttps]
过滤器。
为了简化操作,我希望默认包含此非SSL过滤器,因此我将其添加到Global.asax文件中设置的全局过滤器中。但是,我现在似乎已经创建了一个无限循环,每个过滤器重定向到另一个。
这引出了我的问题...我可以添加到全局过滤器以检测[RequireHttps]
是否已应用于控制器吗?
答案 0 :(得分:5)
当然,您可以询问有关动作和控制器的任何内容。检查RequireHttpsAttribute
:
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
base.OnActionExecuted(filterContext);
bool requireHttps = filterContext.ActionDescriptor.ControllerDescriptor
.GetCustomAttributes(typeof(RequireHttpsAttribute), true).Length > 0
}