簡體   English   中英

ASP.NET Web API 2中的帶有AuthorizationFilterAttributes的條件或

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM