gpt4 book ai didi

c# - 如何检查用户是否以编程方式在 ASP.NET Core 中扮演角色?

转载 作者:行者123 更新时间:2023-12-02 18:08:02 25 4
gpt4 key购买 nike

我知道 attribute-based authorization .

我知道我们可以添加 [Authorize (Role = 'RoleName')] 以将操作或 Controller 的访问权限限制为仅该人。

但是,在这种特殊情况下,我需要以编程方式检查用户是否在角色中,INSIDE 操作。

[HttpGet]
public IActionResult DomSomething()
{
// How can I know that user has a role here?
return Ok();
}

我该怎么做?

更新

我没有使用 ASP.NET Core Identity。

我正在使用 KeyCloak(OAuth 提供商)。

最佳答案

您可以使用 userManager.IsInRoleAsync(user, role.Name) 检查它。在你的 Controller 上注入(inject) userManager。并像下面这样使用:

[HttpGet]
public IActionResult DomSomething()
{
if(userManager.IsInRoleAsync(user, role.Name)){
// Do your stuff
}
return Ok();
}

关于c# - 如何检查用户是否以编程方式在 ASP.NET Core 中扮演角色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72867849/

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