[英]How to check claim for value in API request (ASP.NET Core 2.2)
我在ASP.NET Core 2.2中使用基於聲明的身份
根據我的閱讀,可以使用以下格式(在此答案中找到)進行自定義聲明/政策授權
[Authorize(Policy = "DataDrivenExample")]
public IActionResult GetFooBar()
{
// Omitted for brevity...
}
但是,在我的應用程序中,我需要檢查用戶是否有權訪問此特定對象。 例如,如下所示:
[Authorize(Policy = "EditFooBar:" + id)]
public IActionResult EditFooBar(string id)
{
// Omitted for brevity...
}
處理程序然后是這樣的...?
public class EditFooBarHandler : AuthorizationHandler<DataDrivenRequirement>
{
protected override void Handle(AuthorizationContext context,
string id)
{
var hasClaim = context.HttpContext.User.Claims.Any(c => c.Type == "EditFooBar" && c.Value == id);
...etc...
}
為id
每個可能值制定單獨的策略實際上是不可行的。
基本上,如何將數據傳遞到針對該API端點的每個請求都不同的策略要求檢查器中?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.