【发布时间】:2018-11-07 08:55:08
【问题描述】:
我有带有 asp.net core 2.1 的 API。基于声明的身份验证。是否可以将这两个api函数合二为一?
[Authorize(Roles = "Admin")]
[HttpPost("delete")]
public IActionResult Delete([FromBody]Item item)
{
_itemService.Delete(item.Id);
return Ok();
}
[Authorize]
[HttpPost("delete")]
public IActionResult Delete([FromBody]Item item)
{
var id = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);
if (_itemService.IsAuthor(id))
{
_itemService.Delete(item.Id);
return Ok();
}
return Forbid();
}
或者我应该只检查方法内部的角色?
【问题讨论】:
-
Resource-based authorization 在这里可能有用。
-
在这种情况下,使用授权处理程序的自定义策略可能是最佳选择。 docs.microsoft.com/en-us/aspnet/core/security/authorization/…
标签: c# asp.net-core asp.net-core-2.0