7

如何将动态变量传递给asp.net mvc中的授权属性类?

例如,我有这段代码,如何将 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 folder (3)\MvcPWy\Controllers\HomeController.cs 39 28 MvcPWy

所以请谁能帮我解决这个错误。

4

3 回答 3

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

您必须为角色传递一个常量变量,如下所示:

public static class Roles
{
    public const string UserRoles = "UserRoles";
}
于 2015-12-15T17:45:26.267 回答
1

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

于 2015-12-15T17:39:29.100 回答