Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 31277|Respuesta: 2

[Fuente] Autorización basada en roles

[Copiar enlace]
Publicado el 7-6-2020 21:25:56 | | |
133 de 153 personas encontraron esto útil
Cuando se crea una identidad, puede pertenecer a uno o más roles; por ejemplo, Tracy puede pertenecer a los roles de Administrador y Usuario, mientras que Scott puede pertenecer solo al rol de usuario. Cómo se crean y gestionan estos roles depende del almacenamiento de respaldo del proceso de autorización. Los roles se exponen al desarrollador a través de la propiedad IsInRole en la clase ClaimsPrincipal.

La nueva identidad puede pertenecer a uno o más roles, por ejemplo, Tracy puede pertenecer a los roles de Administrador y Usuario, y Mientras Scott puede pertenecer solo al rol de Usuario. Cómo se crean y gestionan estos roles depende de cómo se almacene el proceso de autorización. El método IsInRole de la clase ClaimsPrincipal proporciona a los desarrolladores cómo usar el rol.

Añadir comprobaciones de roles Añadir validación de roles

Las comprobaciones de autorización basadas en roles son declarativas: el desarrollador las integra en su código, contra un controlador o contra una acción dentro de un controlador, especificando roles que el usuario actual debe desempeñar Sé miembro de para acceder al recurso solicitado.

La autenticación basada en roles es basada en reclamaciones, que los desarrolladores incrustan en su código, asignando roles a un controlador o métodos dentro de él, especificando que los usuarios en una solicitud deben cumplir los requisitos de membresía correspondientes.

Por ejemplo, el siguiente código limitaría el acceso a cualquier acción en el AdministrationController a usuarios que sean miembros del grupo de Administradores.

Por ejemplo, el siguiente código restringirá cualquier método en el AdministrationController para que solo se use siendo miembro del grupo de Administradores.



Puedes especificar múltiples roles como una lista separada por comas;

Puedes añadir varios roles asignados a una lista dividida por comas:



Este controlador solo sería accesible para usuarios que sean miembros del rol HRManager o del rol de Finanzas.

El controlador solo será accesible para los miembros del puesto de Recursos Humanos o del puesto de Finanzas.

Si aplicas múltiples atributos, entonces un usuario que accede debe ser miembro de todos los roles especificados; el siguiente ejemplo requiere que un usuario sea miembro tanto del rol PowerUser como del PanelUsuario.

Si usas múltiples atributos, el usuario de acceso debe ser miembro de todos los roles; El siguiente ejemplo requiere que un usuario sea miembro tanto de los roles PowerUser como de ControlPanelUser.



Puedes limitar aún más el acceso aplicando atributos adicionales de autorización de rol a nivel de acción;

Puedes usar atributos adicionales de autorización de rol a nivel de método para aplicar restricciones de uso adicionales;




En el fragmento de código anterior, los miembros del rol de Administrador o del rol PowerUser pueden acceder al controlador y a la acción SetTime, pero solo los miembros del rol de Administrador pueden acceder a la Acción de Apagado.

En el fragmento de código anterior, los miembros de los roles de Administrador o PowerUser pueden usar los métodos controlador y SetTime, pero solo los miembros del rol de Administrador pueden usar el método ShutDown.

También puedes bloquear un mando pero permitir el acceso anónimo y no autenticado a acciones individuales.

También puedes bloquear un controlador, pero permitir que usuarios anónimos usen métodos separados sin autorización.



Comprobaciones de roles basadas en políticas Comprobaciones de roles basadas en políticas

Los requisitos de rol también pueden expresarse usando la nueva sintaxis de políticas, donde un desarrollador registra una política al inicio como parte de la configuración del servicio de autorización. Esto normalmente se activa en ConfigureServices() en tu archivo Startup.cs.

Los roles también pueden lograrse utilizando una nueva sintaxis de política, donde los desarrolladores registran una política como parte de la configuración del servicio de autorización en el arranque. Esto suele añadirse a los ConfigureServices() del archivo Sartup.cs.



Las políticas se aplican usando la propiedad de Política en el atributo AuthorizeAttribute;

Implementa la política usando la propiedad de política encima de la propiedad AuthorizeAttribute.



Si quieres especificar múltiples roles permitidos en un requisito, puedes especificarlos como parámetros del método RequireRole;

Si quieres especificar múltiples roles en una solicitud, puedes especificarlos como múltiples parámetros del método RequireRole:



su ejemplo autoriza a usuarios que pertenecen a los roles de Administrador, PowerUser o Administrador de Respaldo.

El usuario autorizado en este ejemplo pertenecerá al rol de Administrador, Usuario de Energía o Administrador de Respaldo.

Transferido desde:El inicio de sesión del hipervínculo es visible.




Anterior:Solucionado el problema en el que HttpContext.User.IsInRole() siempre devuelve false
Próximo:TS Parámetro radix faltante (radix)
 Propietario| Publicado el 7-6-2020 21:36:01 |


Si quieres aplicar solo la última característica, es decir:

Puedes añadir lo siguiente al filtro personalizado:


AllowMultiple

Este atributo marca si nuestras características personalizadas pueden colocarse varias veces antes de la misma entidad del programa.
 Propietario| Publicado el 10-6-2020 11:46:34 |
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com