Cómo manejar mejor los permisos (no los roles) en la membresía asp.net, específicamente en ASP.NET MVC

Hay muchas preguntas (e información) sobre la configuración de membresía asp.net, proveedores de roles y similares. Si debe usar o no la plataforma incorporada proporcionada por microsoft o extender las clases base y el rol propio.

He decidido ampliar los proveedores predeterminados e implementar mi propia membresía y proveedores de roles. Ahora mi pregunta es específicamente sobre la autenticación de roles.

Tradicionalmente, crearía roles tal como 'Gerente, Administrador, Empleado, Súper Usuario' o lo que sea que tenga. Pero, ¿qué haría / debería hacer con respecto a los permisos que considero que son un grano de control más fino? Déjame elaborar ...

Dentro de mi sitio asp.net mvc tengo diferentes áreas como administración, administración, mensajería, informes, etc. Crearía roles para cada uno de estos, como 'Administrador', 'Gerente', 'Reportero', etc. Sin el rol apropiado, puede No acceda a esa área del sitio. Así que bloquearía a todos los controladores con esto a nivel de clase.

Pero ahora tome un área como ejemplo; mensajes, y decir que quería tener permisos de grano más finos para CRUD; crear un mensaje, ver / leer mensajes, editar mensajes, eliminar mensajes, etc.

Finalmente mi pregunta. ¿Cómo sería mejor implementar este grano de control más fino? Un enfoque que veo (no estoy seguro si es bueno), es crear roles de membresía asp.net para todo. Entonces podría tener ...

Messenger (rol de nivel amplio), CreateMessage, ReadMessage, EditMessage, DeleteMessage.

Por un lado, me gustaría que algunos usuarios puedan leer / ver mensajes. Pero no necesariamente crearlos o eliminarlos. Las acciones del controlador individual podrían tener los roles específicos aplicados.

¿Ves algún problema con este enfoque? Tienes una mejor idea?

Solución hasta ahora

He decidido crear mi propio esquema e implementar membresía personalizada y proveedores de roles. Mi esquema incluye;

UsuarioPerfil del usuarioPermisoPermiso AsignaciónPapelAsignación de roles

Voy a estar fuera el próximo día o dos, pero se actualizará con más información cuando tenga la oportunidad.

Respuestas a la pregunta(3)

Su respuesta a la pregunta