如何将动态变量传递到asp.net mvc中的authorize属性类中

本文关键字:中的 mvc net authorize 属性 asp 动态 变量 | 更新日期: 2023-09-27 18:26:57

如何将动态变量传递到asp.net mvc中的authorize属性类中?

例如,我有这段代码,如何将userRoles变量这样的变量传递到Authorize属性类中?

private  string userRoles;
private string getuserRoles() 
{
     //Write your code to get userRoles
     userRoles = "admin";
     return "admin";
 }
[Authorize(Roles = object.getuserRoles())]
public ActionResult Admin()
{
       ViewBag.Message = "Your contact page.";
        return View();
}

我的代码发出此错误

错误1属性参数必须是常量表达式,类型为属性参数的表达式或数组创建表达式类型C:''Users''Nashat''Downloads''New文件夹(3) ''MvcPWy''Controllers''HomeController.cs 39 28 MvcPWy

所以请任何人帮我解决这个错误。

如何将动态变量传递到asp.net mvc中的authorize属性类中

    [Authorize(Roles = Roles.UserRoles)]
    public ActionResult Index()
    {
        return View();
    }

您必须为角色传递一个常量变量,类似于以下内容:

public static class Roles
{
    public const string UserRoles = "UserRoles";
}

简单的答案是:你不能那样做。请查看前面的答案以了解更多详细信息。

请看一下-属性参数必须是常量表达式,…-创建类型为数组的属性

https://msdn.microsoft.com/en-us/library/aa288454(v=vs.71).aspx