【发布时间】:2014-02-14 15:38:37
【问题描述】:
您好,我的 ASP.NET MVC 网站上有一个名为 MyClassAuthorizationAttribute 的过滤器:
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
filters.Add(new MyClassAuthorizationAttribute());
}
}
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public class MyClassAuthorizationAttribute : Attribute, IAuthorizationFilter
{
public void OnAuthorization(AuthorizationContext filterContext)
{
if (filterContext.HttpContext.User.Identity.IsAuthenticated &&
filterContext.ActionDescriptor.ActionName != "LogOut")
{
//Code Here
}
}
}
正如您所见,每次执行控制器操作时,此代码都会运行。我担心的是我有一些仅在 AJAX 调用中使用的控制器操作,甚至那些偏离当然会引发此过滤器的操作,但是我不希望这种情况发生。
有没有办法避免或对 OnAuthorization 进行任何过滤以不捕获那些 AJAX 调用?
我试图避免手动创建 Ajax 操作列表来检查我的 OnAuthorization 方法。
非常感谢
【问题讨论】:
标签: c# asp.net-mvc