我正在使用MVC3,ASP.NET4.5,C#和Razor。
我想设置一个全局属性,即AuthorizeAttribute。但是,我需要确保某些类和/或操作忽略此全局设置。是否可以装饰一个类和/或动作以确保这一点,如果是这样的话?
非常感谢。
答案 0 :(得分:1)
您可以使用[AllowAnonymous]
属性(ASP.NET MVC中的默认属性)覆盖您的[Authorize]
属性
假设您已将自定义授权逻辑添加到默认FilterConfig
类:
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new HandleErrorAttribute());
filters.Add(new MyCustomAuthorizationAttribute());
}
}
您可以通过使用[AllowAnonymous]
:
// To allow anonymous access to all action methods
[AllowAnonymous]
public class MyController : Controller
{
// Only allow the Index action method to be called anonymously
[AllowAnonymous]
public ActionResult Index()
{
}
}