En post anteriores de esta serie, construimos una aplicación para el ingreso de búsquedas y para la carga de candidatos y sus conocimientos. Ahora nos dedicaremos a implementar la siguiente feature:
-
MMF: Restringir accesos y pantallas.
- Como Administrador quiero poder definir los roles de PMO Manager y Recruiter para restringir accesos.
Para configurar esto, iremos a las propiedades del proyecto e ingresaremos a las opciones de control de acceso.
Aquí veremos que se cuenta con diversas opciones de implementación de seguridad. Podemos bien usar seguridad integrada de Windows o usar forms authentication que aplica para un esquema custom de seguridad.
Por otro lado, en la grilla debajo podemos ingresar los diversos permisos que se le podrán otorgar a los usuarios. Para nuestro ejemplo, usaremos Forms Authentication para poder definir diferentes usuarios y crearemos un permiso para la administración de búsquedas, otro para la administración de Candidatos y otro para la administración de conocimientos.
La columna «Granted for debug» nos permitirá contar con esos permisos durante la ejecución en modo debug. Esto es útil para probar a continuación la correcta ejecución del código de autorización.
Ahora iremos a solapa Screen Navigation, también dentro de las propiedades del proyecto, para poder implementar la restricción de acceso a las pantallas. Para comenzar, sobre la pantalla de Búsquedas, accedemos al menú contextual con el botón derecho y elegimos la opción «Edit Busquedas_CanRun code».
Esto nos abrirá una clase para poder incluir el código que restrinja el ingreso. Para esto, accederemos a la clase User, que contiene un método para la validación de los permisos. Los permisos una vez definidos en la grilla previa, están disponibles para ser accedidos a través de la clase Permissions.
Repetiremos los mismos pasos para la pantalla de Candidatos y Conocimientos, cado uno con los correspondientes permisos.
Ahora ejecutamos la aplicación, y como previamente había marcado todos los permisos como disponibles, podremos hacer todas las tareas. Es interesante ver también, que un nuevo menú de Administración está disponible, para poder definir Roles y usuarios. A continuación vemos las mencionadas pantallas.
Ahora intentaremos ingresar un nuevo usuario, con password «password». Y con qué nos encontramos? Con que nos pide cumplir con determinadas reglas mínimas:
Por lo tanto, ingresamos una clave con mayor seguridad. Si es necesario cambiar la configuración respecto a la fuerza exigida para la password, se debe configurar el ASP.NET membership provider.
Ahora bien, si queremos probar si los permisos están restringidos correctamente, en las propiedades del proyecto desmarcamos por ejemplo el permiso Busquedas. Ejecutamos la aplicación, y el menú de búsquedas ya no aparecerá.
De esta manera, hemos restringido los permisos para los usuarios y roles que definamos en el sistema.
D2F