Pregunta

¿Cuál es la mejor manera de implementar la seguridad utilizando roles de directorio activo en un sitio de datos dinámicos asp.net?

Me gustaría restringir ciertas vistas (y los enlaces relacionados) a ciertos roles. es decir, el usuario A solo puede ver las acciones de la lista para la tabla xy el usuario B solo puede ver las acciones de la lista para la tabla y

¿Fue útil?

Otros consejos

He hecho esto en muchas aplicaciones.

Habilite la autenticación de Windows para su aplicación.

Cree algún objeto que pueda almacenar credenciales de usuario y tenga ese objeto almacenado en la sesión para una recuperación rápida. Si no está allí, puede reconstruirlo rápidamente. Por lo general, tengo cada rol establecido en un poco, por ejemplo:


enum USER_ROLE : int
{
  Role1 = 1,
  Role2 = 2,
  Role3 = 4,
  Role4 = 8,
  etc
}

if (Context.User.IsInRole("Roll1Name")) YourUserObject.Roles += USER_ROLE.Role1;
if (Context.User.IsInRole("Roll2Name")) YourUserObject.Roles += USER_ROLE.Role2;
etc

Luego, cada vez que se necesita asegurar un control, lo paso a una función que toma un HtmlControl y una propiedad basada en el rol del usuario y los requisitos de seguridad para ese control.

Ej. bool SetControlSecurity (HtmlControl ctrl, int iUserRoles, int iControlRoles, ACTION eAction)

Entonces, un ejemplo para hacer un panel podría ser:

SetControlSecurity (pnlUserInfo, YourUserObject.Roles, eRole.Role2, ACTION.Hide);

Por lo general, también hago que tome un parámetro del tipo de acción a realizar en caso de falla de seguridad, como ocultar, solo lectura, borrar datos, etc. ...

Comparar el rol en la función es fácil:


bool bHasAccess = ((iUserRole & iControlRoles) > 0);
if (bHasAcess)
{
  // leave the control or make sure it is visible etc
}
else
{
  // take action to secure the control based on the action
}

Espero que ayude.

Puede usar la Membresía de Active Directory de ASP.NET & amp; Proveedores de roles para autenticar \ autorizar a los usuarios a la aplicación. Luego puede llamar al Roles.IsUserInRole donde quiera verificar para que la membresía del rol de AD verifique que los usuarios son parte de los grupos relevantes antes de mostrar el contenido.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top