Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés

AuthorizeAttribute (Clase)

Visual Studio 2010

Representa un atributo que se utiliza para restringir el acceso por llamadores a un método de acción.

System.Object
  System.Attribute
    System.Web.Mvc.FilterAttribute
      System.Web.Mvc.AuthorizeAttribute

Espacio de nombres:  System.Web.Mvc
Ensamblado:  System.Web.Mvc (en System.Web.Mvc.dll)

[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Method, Inherited = true, 
	AllowMultiple = true)]
public class AuthorizeAttribute : FilterAttribute, 
	IAuthorizationFilter

El tipo AuthorizeAttribute expone los siguientes miembros.

  NombreDescripción
Método públicoAuthorizeAttributeInicializa una nueva instancia de la clase AuthorizeAttribute.
Arriba

  NombreDescripción
Propiedad públicaOrderObtiene o establece el orden en el que se ejecutan los filtros de acción. (Se hereda de FilterAttribute).
Propiedad públicaRolesObtiene o establece los roles de usuario.
Propiedad públicaTypeIdObtiene un identificador único para este atributo. (Invalida a Attribute.TypeId).
Propiedad públicaUsersObtiene o establece los usuarios autorizados.
Arriba

  NombreDescripción
Método protegidoAuthorizeCoreDetermina si el acceso al marco básico está autorizado.
Método públicoEqualsInfraestructura. Devuelve un valor que indica si esta instancia equivale a un objeto especificado. (Se hereda de Attribute).
Método protegidoFinalizePermite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método públicoGetHashCodeDevuelve el código hash de esta instancia. (Se hereda de Attribute).
Método públicoGetTypeObtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método protegidoHandleUnauthorizedRequestProcesa las solicitudes HTTP que producen un error en la autorización.
Método públicoIsDefaultAttributeCuando se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado para la clase derivada. (Se hereda de Attribute).
Método públicoMatchCuando se reemplaza en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado. (Se hereda de Attribute).
Método protegidoMemberwiseCloneCrea una copia superficial del objeto Object actual. (Se hereda de Object).
Método públicoOnAuthorizationSe llama cuando un proceso solicita autorización.
Método protegidoOnCacheAuthorizationSe llama cuando el módulo de almacenamiento en caché solicita autorización.
Método públicoToStringDevuelve una cadena que representa el objeto actual. (Se hereda de Object).
Arriba

  NombreDescripción
Implementación explícita de interfacesMétodo privado_Attribute.GetIDsOfNamesAsigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.GetTypeInfoObtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.GetTypeInfoCountRecupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1). (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado_Attribute.InvokeProporciona acceso a las propiedades y los métodos expuestos por un objeto. (Se hereda de Attribute).
Arriba

Muchas aplicaciones web exigen a los usuarios que inicien sesión antes de que los usuarios tengan acceso al contenido restringido. En algunas aplicaciones, incluso los usuarios que están registrados podrían tener restricciones en qué contenido pueden ver o qué campos pueden modificar.

Para restringir el acceso a una vista de ASP.NET MVC, restrinja el acceso al método de acción que presenta la vista. Para ello, el marco MVC proporciona la clase AuthorizeAttribute.

Para obtener más información acerca de la forma de utilizar atributos, vea Extender metadatos mediante atributos.

Este tema contiene las siguientes secciones:

Usar AuthorizeAttribute

Al marcar un método de acción con AuthorizeAttribute, el acceso a ese método de acción está restringido a los usuarios tanto autenticados como autorizados. Si marca un controlador con el atributo, el resultado de todos los métodos de acción del controlador se restringen.

El atributo Authorize le permite indicar que la autorización está restringida a los roles predefinidos o a los usuarios individuales. Esto proporciona un alto grado de control sobre quién está autorizado para ver cualquier página del sitio.

Si un usuario sin autorización intenta tener acceso a un método que se marca con el atributo Authorize, el marco de MVC devuelve un código de estado 401 HTTP. Si el sitio se configura para usar la autenticación de formularios de ASP.NET, el código de estado 401 hace que el explorador redirija al usuario a la página de inicio de sesión.

Derivar de AuthorizeAttribute

Si deriva de la clase AuthorizeAttribute, el tipo derivado debe ser seguro para subprocesos. Por consiguiente, no almacene ningún estado en una instancia del propio tipo (por ejemplo, en un campo de instancia) a menos que ese estado se pretenda aplicar a todas las solicitudes. En su lugar, almacene el estado por solicitud en la propiedad Items, que es accesible a través de los objetos de contexto pasados a AuthorizeAttribute.

En el ejemplo siguiente se muestran varias maneras de usar el método AuthorizeAttribute. La clase HomeController tiene tres métodos de acción que se marcan con el atributo Authorize y dos que no están marcados. En el método AuthenticatedUsers, el atributo limita el acceso a los usuarios que inicien sesión. En el método AdministratorsOnly, el atributo limita el acceso a los usuarios asignados al rol Admin o al rol Super User. En el método SpecificUserOnly, el atributo limita el acceso a los usuarios cuyos nombres son Betty o Johnny. Cualquier usuario, incluso los usuarios anónimos, puede tener acceso a los métodos About e Index.


[HandleError]
 public class HomeController : Controller
 {
     public ActionResult Index()
     {
         ViewData["Message"] = "Welcome to ASP.NET MVC!";

         return View();
     }

     public ActionResult About()
     {
         return View();
     }

     [Authorize]
     public ActionResult AuthenticatedUsers()
     {
         return View();
     }

     [Authorize(Roles = "Admin, Super User")]
     public ActionResult AdministratorsOnly()
     {
         return View();
     }

     [Authorize(Users = "Betty, Johnny")]
     public ActionResult SpecificUserOnly()
     {
         return View();
     }
 }


Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
Mostrar: