c # User.IsInRole Namespace

Tenga en cuenta que estoy usando c # MVC 3, estoy tratando de usar esto dentro de una clase, NO un controlador.

Tengo lo siguiente en la parte superior de mi progtwig

using System.Web.Security; 

Intenté hacer lo siguiente pero recibí el mensaje:

El nombre ‘Usuario’ no existe en el contexto actual.

Aquí está mi código parcial:

  using System.Web.Security; .... .... if (User.IsInRole("Admin")) { } 

Estoy pensando que tiene que hacer algo con el espacio de nombres pero mirando la documentación, todo lo que necesito es System.Web.Security.

Primero intente: mientras ejecuta la vista, verifique lo siguiente en el controlador HttpContext.Current.User.IsInRole("Admin") : esta línea verifica su valor.

Debería devolver un valor bool si tiene HttpContext actual cargado.

Solución # 2: Mira el proyecto mvc3 predeterminado:

 Context.User.IsInRole("Admin") 

en lugar de Page.User.IsInRole("Admin") .

Además : puede consultar esta publicación sobre cómo establecer el uso de los roles: User.IsInRole (“”) sin usar Membership .

Busque el siguiente uso con ASP.NET MVC Membership Clases de ASP.NET MVC Membership :

  • Membresía y autorización en ASP.Net MVC 3 Razor
  • Membresía simple, proveedores de membresía, proveedores universales y las nuevas plantillas de formularios web ASP.NET 4.5 y ASP.NET MVC 4
  • La membresía de Asp.net: cómo determinar de forma programática el usuario es un rol
  • Funciones de membresía de ASP.NET MVC

agregar using System.Web.Mvc; Deberias hacer eso

Entonces, basado en su comentario, voy a asumir que está trabajando en una clase que no es un Controlador, pero está dentro de su proyecto MVC. Así que deberías ser capaz de hacer lo que intentas así.

 if(HttpContext.Current.User.IsInRole("Admin")) { //... } 

Utilice System.Web.HttpContext.Current.User.IsInRole("yourRole")

Espero que te ayude 🙂