2010-07-15 55 views
0

我有一个所有控制器继承的BaseController。 CaseController具有[Authorize]批注,因此所有控制器都需要授权。ASP.NET MVC 2 - 如何覆盖单个控制器操作的注释?

但我刚刚意识到,一个单一的控制器行动不得要求授权。如何才能关闭[Authorize]以进行那一个控制器操作?

using System.Web.Mvc; 
using Unleashed.Service.Interfaces; 

namespace Controllers 
{ 
    [Authorize] 
    [RequireHttps] 
    public class BaseController : Controller 
    { 
    } 
} 

而控制器操作是通过POST从另一个站点调用的。他们通过传递令牌来授权。他们不会通过表单认证进行授权。

[Authorize=false] // doesnt compile 
[Authorize(false)] // doesnt compile 
public ActionResult DoSomething(string token, string data) 
{ 
} 

回答

0

通过创建一个不从BaseController继承的新控制器并将操作添加到该控制器来解决。现在这一行动不需要授权,所有现有的行动都保持原样。