Necesito implementar flexible Y simple (si tal cosa existe) y al mismo tiempo utilizar medios integrados si es posible
Hasta ahora he implementado MembershipProvider y RoleProviders. Esto es genial, pero ¿a dónde voy después?
Siento que necesito agregar el término "Priviledge" y luego codificar aquellos dentro de la aplicación. Los usuarios configurarán roles para agregar Privilidges a Roles y asignar Roles a los usuarios.
¿Suena eso como un buen modelo? ¿Debería pensar en agregar privilegios a nivel de Usuario además de agregarlos a Roles? Podría pero imagino problemas con la configuración (confusa) y el siguiente soporte.
Si no hago eso y algunos usuarios específicos necesitarán privilegios menores, el administrador tendrá que crear otro rol, etc.
¿Alguna bala de plata para un sistema como este? ¿Y por qué Microsoft no fue más allá que solo los proveedores de Membresía y Rol?
Otra idea: deje los roles como titular de "privilegios" y codifíquelos. Entonces puedo codificar esos roles dentro de la aplicación usando todas las marcas / atributos disponibles, etc., todo Microsoft.
Agregue una nueva entidad "Grupo" y cree una relación como esta
- Los usuarios
- Grupos de Usuarios
- Grupos
- RoleGroups
- Roles
De esta manera puedo recopilar roles en grupos y asignar esos grupos a los usuarios. Suena genial y coincide con otros patrones de software. Pero entonces realmente no puedo implementar cosas dentro de RoleProvider como:
- AddUsersToRoles
- RemoveUsersFromRoles
Y algunas cosas ya no tienen sentido porque estarán codificadas
- DeleteRole
- CreateRole
fuente
IPrincipal
aIClaimsPrincipal
cuando desea hacer verificaciones de reclamos. Estará escribiendo una gran cantidad de su propio código si desea encajarlo con (por ejemplo) Autenticación de formularios, pero obviamente se puede hacer (según el enlace).