簡體   English   中英

ASP.NET Web API 2 中的路由別名

[英]Route Aliases in ASP.NET Web API 2

我有一個 Web API,它允許用戶訪問/操作“屬於”其他用戶的資源。 它包含許多與此類似的路由:

/users/{userId}/resource

我想要一組相應的路由,它們代表當前經過身份驗證的用戶執行相同的操作:

/resource

理想情況下,我想讓第二組路由正常工作,而不會使控制器中的操作數量增加一倍,但我正在努力尋找正確的鈎子。 理想情況下,我想添加一個 MessageHandler(或其他東西)來攔截每個請求,檢查它是否與路由匹配,如果不匹配,則將“用戶/”+經過身份驗證的用戶的 ID 添加到路由並再次檢查. 實現這一目標的最佳方法是什么?

一個限制:我使用屬性路由來實現第一組路由,並且理想情況下希望在不犧牲它的情況下實現它。

鈎子是操作選擇器,正如您在此處看到的: ASP.NET Web API 中的路由和操作選擇

您可以實現自己的操作選擇器來實現您想要的。 以下是有關如何執行此操作的示例: 神奇的 Web API 操作選擇器 從同一頁面:

我們將創建一個實現 IActionSelector 的類,因為這將允許我們插入 GlobalConfiguration.Configuration.Services 下的 Web API 提供的鈎子。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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