2016-07-05 78 views
0

當使用屬性路由,是它能夠去除基於某些運行條件路線 - 例如許可?條件屬性路由

事情是這樣的:

[LicensedRoute("/api/whatever")] 

其中「/ API /不管」如果應用程序是行貨僅添加到路由表。

很顯然,我可以明確地做動作方法檢查或使用動作過濾器來驗證請求,但最終我更喜歡的路線不提供,如果軟件是不許可的。

+1

大概定製的授權屬性在這種情況下更相關。 – Albert

回答

1

看來你需要的屬性路由:http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2

它是REST風格的?您如何存儲許可信息:是否是用戶登錄?令牌?鍵?

您可以通過基於令牌的身份驗證來強制客戶端傳遞令牌,例如:定義多個「許可」級別/類型(例如Free/Trial/Basic/Pro),然後在持久存儲(表)映射令牌(guid)到許可證類型。

然後使用自定義屬性,標誌與所需的最小許可類型每個端點/控制器/動作要訪問的(例如[MinimumLicence("Basic")])。然後根據所需的許可證創建「路由表」。

在這種情況下,你會拒絕訪問的路線,而不是「刪除」他們。

+0

所以,簡單的答案是號 – Metro