如何将动态变量传递到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
所以请任何人帮我解决此错误。
答案 0 :(得分:1)
简单的答案是:你不能这样做。有关更多详细信息,请查看此previous answer。
答案 1 :(得分:0)
请看看 - An attribute argument must be a constant expression, ...- Create a attribute of type array
https://msdn.microsoft.com/en-us/library/aa288454(v=vs.71).aspx
答案 2 :(得分:0)
[Authorize(Roles = Roles.UserRoles)]
public ActionResult Index()
{
return View();
}
你必须为Roles传递一个常量变量,如下所示:
public static class Roles
{
public const string UserRoles = "UserRoles";
}