我有內部的自定義AuthorizeAttribute這樣如何讓[授權]自定義AuthorizeAttribute
public class DevMode : AuthorizationFilterAttribute
{
public override void OnAuthorization(HttpActionContext actionContext)
{
if (myConditionToAuthorize)
{
// how to allow [Authorize] ?
}
}
}
的問題是,它是伴隨着[授權]標籤這樣使用:
[Authorize, DevMode]
public class UserController : ApiController { ... }
我需要允許[Authorize] == true
裏面[DevMode]
或者最好把它們放在一個獨特的授權類裏面嗎?但後來我不知道檢查授權數據。
「AuthorizeAttribute」中沒有'IsAuthorized'方法,'ApiController'中''AuthorizeAttribute'沒有被調用..只有'AuthorizationFilterAttribute'是。 (我使用框架4.5)。仔細看一下我的示例。 – Fabricio
'AuthorizeAttribute'中沒有IsAuthorized方法:你確定嗎,仔細看一下這個文檔:http://msdn.microsoft.com/en-us/library/system.web.http.authorizeattribute.isauthorized (v = vs.108).aspx –
'System.Web.Mvc.AuthorizeAttribute'和'System.Web.Http.AuthorizeAttribute'之間有很大的區別。我希望你使用後者作爲第一個顯然不是在API控制器中調用。另外,如果您使用的是ASP.NET Web API,那麼爲什麼用'asp.net-mvc'而不是用'asp.net-web-api'來標記問題標記?我會更新它來解決這兩種可能會使讀者迷惑的技術之間的誤解。 –