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

时间:2015-12-15 17:24:42

标签: c# asp.net asp.net-mvc asp.net-mvc-4 class-attributes

如何将动态变量传递到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属性参数必须是常量表达式typeof   表达式或数组创建表达式的属性参数   键入C:\ Users \ Nashat \ Downloads \ New文件夹   (3)\ MvcPWy \ Controllers \ HomeController.cs 39 28 MvcPWy

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

3 个答案:

答案 0 :(得分:1)

简单的答案是:你不能这样做。有关更多详细信息,请查看此previous answer

答案 1 :(得分:0)

答案 2 :(得分:0)

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

你必须为Roles传递一个常量变量,如下所示:

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