C# 使用常量表达式授权属性
我正在尝试为我的控制器设置授权,可以执行以下操作:C# 使用常量表达式授权属性,c#,asp.net-mvc,C#,Asp.net Mvc,我正在尝试为我的控制器设置授权,可以执行以下操作: [Authorize(Roles = "Approver")] [Authorize(Roles = Settings.Instance.RoleEmployee)] 角色的名称如何保存在数据库中,因此我想尝试执行以下操作: [Authorize(Roles = "Approver")] [Authorize(Roles = Settings.Instance.RoleEmployee)] 但我得到了以下错误: 属性参数必须是常量表达式
[Authorize(Roles = "Approver")]
[Authorize(Roles = Settings.Instance.RoleEmployee)]
角色的名称如何保存在数据库中,因此我想尝试执行以下操作:
[Authorize(Roles = "Approver")]
[Authorize(Roles = Settings.Instance.RoleEmployee)]
但我得到了以下错误:
属性参数必须是常量表达式,typeof表达式
或属性参数类型的数组创建表达式
有没有办法解决这个问题? [UniqueAttribute(Identifier = "Id")]
如果“雇员”是已知角色,则在应用程序中定义此字符串常量,并确保存储在数据库中的角色可以在需要时映射到此值。这两个链接都意味着这非常困难或不可能。通过创建自己的授权属性(例如[AuthorizeApprover])并使用该属性,这样做相对容易(总共5行)。不过,可扩展性不是很强。