gpt4 book ai didi

asp.net-core - .net 核心在单一操作方法上覆盖 Controller 级别授权属性

转载 作者:行者123 更新时间:2023-12-05 04:09:41 25 4
gpt4 key购买 nike

在下面的 Controller 代码中,只有“管理员”角色的用户才能访问 GetData() 操作方法,因为 Controller 级别的授权属性。但我也希望只有“经理”角色的用户才能访问 GetData() 操作方法,如何编写这个的自定义属性?

[Authorize(Roles = "Administrator")]
Pulic class AdminController : Controller
{

[Authorize(Roles = "Administrator, Manager")]
public IActionResult GetData()
{
}

}

最佳答案

类级别的属性总是首先被检查,所以它拒绝任何不在正确角色中的人。您需要在类级别指定最广泛的访问权限,然后在需要的地方将其缩小到方法级别:

[Authorize(Roles = "Administrator, Manager")]
public class AdminController : Controller
{
// no attribute needed here
public IActionResult GetData()
{
}

[Authorize(Roles = "Administrator")]
public IActionResult RestrictedMethod()
{
}
}

关于asp.net-core - .net 核心在单一操作方法上覆盖 Controller 级别授权属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45457298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com