Note, I am using c# MVC 3, I am trying to use this within a class, NOT a controller.
I have the following at top of my program
using System.Web.Security;
I tried to do the following but get the message:
The name 'User' does not exist in the current context.
Here is my partial code:
using System.Web.Security;
....
....
if (User.IsInRole("Admin"))
{
}
I am thinking that is has to do something with the namespace but looking at the documentation, all I should need is System.Web.Security.
Try first : while executing the view, check the following in controller HttpContext.Current.User.IsInRole("Admin")
- this line check your value.
It should return a bool
value if you have current HttpContext loaded.
Solution #2: Look at the default mvc3 project:
Context.User.IsInRole("Admin")
instead of Page.User.IsInRole("Admin")
.
In addition: you may check this post about how to set usage of roles - User.IsInRole(" ") without using Membership.
Look for the following usage with ASP.NET MVC Membership
classes :
- Membership and Authorization in ASP.Net MVC 3 Razor
- SimpleMembership, Membership Providers, Universal Providers and the new ASP.NET 4.5 Web Forms and ASP.NET MVC 4 templates
- Asp.net membership - how to determine programmatically is user is in role
- ASP.NET MVC Membership Roles
add using System.Web.Mvc;
That should do it
So based on your comment, I'm going to assume you are working in a class that is not a Controller, but is inside your MVC project. So you should be able to do what you are attempting like so
if(HttpContext.Current.User.IsInRole("Admin"))
{
//...
}
Use System.Web.HttpContext.Current.User.IsInRole("yourRole")
Hope it will help :)