How to pass a dynamic variable into the authorize attribute class in asp.net mvc?
For Example I have this piece of code, how can I pass a variable like userRoles variable into the Authorize attribute class?
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();
}
My code issues this error
Error 1 An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type C:\Users\Nashat\Downloads\New folder (3)\MvcPWy\Controllers\HomeController.cs 39 28 MvcPWy
So please could anyone help me to resolve this error.
The Authorize Attribute In ASP.NET MVC, any incoming request is bound to a controller/method pair and served. This means that once the request matches a supported route and is resolved to controller and method, it gets executed no matter what.
The AllowAnonymous attribute in MVC is used to skip the authorization which is enforced by Authorization Filter in MVC. [AllowAnonymous] public ActionResult NonSecured() { return View();
The Authorize attribute enables you to restrict access to resources based on roles. It is a declarative attribute that can be applied to a controller or an action method.
[Authorize(Roles = Roles.UserRoles)]
public ActionResult Index()
{
return View();
}
You have to pass a constant variable for Roles, something like this:
public static class Roles
{
public const string UserRoles = "UserRoles";
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With