gpt4 book ai didi

c# - 用户的动态权限

转载 作者:行者123 更新时间:2023-11-30 16:18:39 25 4
gpt4 key购买 nike

我正在使用 asp.net 网页的现有代码,其中 Controller 中的方法根据用户所处的角色受到限制,例如:

    namespace Principal.Controllers
{
[Authorize]
public class MyController: Controller
{
[Authorize(Roles = "Role1,Role2,Role3")]
public method1() {...}
}
}

问题是声明允许的角色的部分:

    [Authorize(Roles = "Role1,Role2,Role3")]

我想让字符串动态化,这样我就可以根据管理员设置的属性从方法中返回它,但是它总是给我奇怪的错误,例如“错误 3 属性参数必须是常量表达式,属性参数类型的typeof表达式或数组创建表达式"

如有任何帮助,我们将不胜感激。

最佳答案

正如您所发现的,您只能在定义属性时使用常量;这是因为该属性被编译到代码中 - 您不能使用编译器在编译时不知道的表达式。

您可以改为创建一个继承自 AuthorizeAttribute 类并覆盖 OnAuthorize 的新属性。然后您可以在此处实现您的自定义角色逻辑。

关于c# - 用户的动态权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15976672/

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