2010-07-15 57 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繼承的新控制器並將操作添加到該控制器來解決。現在這一行動不需要授權,所有現有的行動都保持原樣。