2008-12-09 25 views
7

Soy un desarrollador de C#. Desarrollo aplicaciones web Windows &. Me gustaría construir una aplicación Winforms que tenga un sistema basado en roles. Todos los usuarios deben en rol/grupo (s). Luego asignamos permisos como "Ver, Agregar, Actualizar, ..." a la función/grupo. El rol/grupo es dinámico, por lo que permitimos que los usuarios lo definan.¿Algún framework en Autenticación y Autorización para la aplicación Windows Form?

¿Existen marcos y buenos ejemplos de proyectos para implementarlo?

Respuesta

1

Por lo general hago mi propio rollo, ya que .NET Framework es bastante completo en este aspecto, pero puede probar el MS Authorization and Profile Application Block.

+0

Voy a tener que analizar eso. ¿Es bastante fácil posicionar los perfiles de usuario y las funciones en una base de datos? – w4g3n3r

+0

No lo sé. Personalmente nunca lo uso .... –

1

Para los detalles de implementación grungy, ¿has mirado "principales"? Ver mi respuesta here. Con este enfoque, puede utilizar las funciones de base de seguridad en el código - tales como:

[PrincipalPermission(SecurityAction.Demand, Role="ADMIN")] 
    static void SomeMethod() 
    {...} 

El tiempo de ejecución en sí ahora verificar que el usuario tiene que tener su papel "admin" para entrar en ese método (obviamente también podría deshabilitar la opción en la interfaz de usuario marcando IsInRole(...)). Muy poderoso.

+2

Entonces, ¿por qué es el problema si no queremos usar el código duro "ADMIN" en nuestra base de código porque queremos que los usuarios se definan a sí mismos? – Samnang

+1

Entonces no use la DEMANDA, solo revise los permisos a través de IsInRole. –

1

Si no está muy interesado en reinventar la rueda, eche un vistazo a un producto llamado Visual Guard. Le permite agregar fácilmente seguridad a su aplicación con un trabajo mínimo, y tiene un conjunto de herramientas realmente completo.

1

Si ya tiene experiencia con ASP.NET, probablemente esté familiarizado con el sistema de Membresía/Función/Perfil de ASP.NET, con proveedores predeterminados y la posibilidad de agregar el suyo sin demasiada molestia.

¿No sería grandioso si pudieras usar todo eso desde tus formularios Windows Forms o WPF? ¿Sí? Bueno, eche un vistazo a ASP.NET Application Services! Simplemente configura un sitio web para proporcionar una URL de autenticación y luego dile a tu aplicación que la use. Puede crear su propia ventana de inicio de sesión personalizada y hacer que los servicios de aplicaciones la abran cuando sea necesario, o usar su propia lógica y llamar a los métodos usted mismo.

Tiene soporte completo para 'modo sin conexión' donde guarda en caché un hash de la contraseña para comparar, también puede almacenar en caché los roles y le permite usar configuraciones de Perfil.

Cuestiones relacionadas