我正在努力在控制器中实施基于资源的授权策略。我为此使用AuthorizeAttributte
。问题是我想将端点中的参数(id)传递给Policy,以便稍后可以在处理程序中使用id。
这是我的终点:
[HttpGet("{id}/Document")]
[Authorize(Policy = "GetDocumentPolicy")]
public async Task<ActionResult<Result<Document>>> GetDocument(string id)
{
....
}
我需要以某种方式在策略中传递ID,因此在配置文件中,我可以执行以下操作:
services.AddAuthorization(options =>
{
options.AddPolicy("GetDocumentPolicy", policy =>
policy.Requirements.Add(new DocumentRequirement(id))); // id is the id that I need to pass from the end pont
});