2010-01-08 9 views
7

He una aplicación que tiene contenido que necesita ser configurado para permisos (es decir miembro/no miembro)permisos de diseño

He papeles/configuración de la autenticación muy bien, que no es mi problema. Mi pregunta es, básicamente, preguntar la mejor manera de almacenar permisos para cada objeto. Básicamente, hay roles de "Invitado" y "Miembro", y permisos "Permitir" "Denegar" simples para cada objeto.

¿Alguna idea? El programa está escrito en ASP.NET MVC usando C#, LINQ, y MS-SQL 2005.

+0

estoy un poco confundido ... ¿Estás preguntando cómo aplicar esos papeles a los controladores, a los métodos de acción y, en última instancia, a las funciones de sus páginas web, o pregunta cómo puede aplicar esos roles para acceder a objetos específicos. –

+0

¿a qué objetos exactamente quieres añadir permisos? – shenku

Respuesta

7

Si desea proteger activos (archivos, bases de datos, filas entidades del dominio, documentos, etc.) en lugar de la aplicación características o capacidades de usuario, la seguridad basada en roles no encaja muy bien.

Un mejor modelo es usar Listas de control de acceso (ACL) como las conoce NTFS. Casi lo dices tú mismo porque debes asignar permisos particulares a cada objeto para cada usuario o función. Eso es lo que hace una ACL.

Si necesita proteger objetos que finalmente son filas en SQL Server, deberá definir tablas personalizadas para sus ACL, ya que SQL Server no admite permisos de nivel de fila.

Según los datos en esas ACL, debe implementar las comprobaciones de seguridad necesarias en sus Componentes de acceso a datos.

Éstos son algunos enlaces a respuestas relacionadas SO: