[英]Conditional OR with AuthorizationFilterAttributes in ASP.NET Web API 2
我正在編寫一個控制器操作,兩組用戶之一可以訪問它。 每個組都有自己的AuthorizationFilterAttribute
實現,其中包含定義如何授權組的自定義邏輯。 我希望能夠使用條件OR來確定已滿足至少一個屬性授權過濾器。
我希望我能夠做這樣的事情:
public class ConfigController : ApiController
{
[AdminAuthorize || DealRoomAuthorizeAttribute]
public IHttpActionResult GetBlah()
{
return Ok();
}
}
但是沒有運氣! 關於如何實現這一點的任何想法?
由於授權屬性的工作方式,您不能直接執行“或”操作:如果授權失敗,它們會“切斷”管道,因此,如果第一個失敗,它將停止管道,而另一個則沒有機會執行。
您需要實現自己的授權屬性,使您自己成為OR。 這非常容易實現,因為您只需要重用現有屬性的邏輯即可。 實際上,您可以繼承它們之一,並通過重用現有邏輯來覆蓋已廢棄的方法,至少是OnAuthorization
。
更多細節:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.