Compartir a través de


Cómo: Habilitar la autenticación en una aplicación de cliente de Silverlight

En LightSwitch, puede hacer que una aplicación sea más segura si impide que los usuarios no autorizados consulten, modifiquen o eliminen datos. Al implementar la autenticación y la autorización, los usuarios deben demostrar su identidad para poder tener acceso a la aplicación.

Nota

El proceso para establecer permisos es diferente para los clientes HTML (consulte Cómo: Habilitar la autenticación en una aplicación de cliente HTML).Las aplicaciones de LightSwitch que se han habilitado para SharePoint usan la autenticación de SharePoint para el control de acceso.

Si tiene muchos usuarios, también puede administrar el acceso de manera más sencilla mediante la creación de roles de usuario con varios niveles de acceso a ciertas pantallas o datos, y mediante la posterior asignación de cada usuario al rol adecuado.

Por ejemplo, en una aplicación de nóminas se puede permitir a los empleados que vean la información de su nómina, pero no que la modifiquen. No obstante, se puede conceder permisos a un supervisor de nóminas para que consulte y cambie la información del empleado. A los empleados se les asigna el rol Empleado, mientras que al supervisor se le asigna el rol Supervisor.

También puede administrar permisos más fácilmente agregando usuarios a grupos de seguridad en Active Directory y asignando permisos a esos grupos. Dado que la pertenencia y los permisos se heredan, puede conceder o denegar permisos a un grupo o a todos los subgrupos con tan solo realizar un cambio. Por ejemplo, puede agregar a Carlos al grupo Ventas en Active Directory. Si Ventas es un subgrupo de Marketing, los permisos que asigne a Marketing también se asignarán a Carlos.

Autenticación

El primer paso para proteger la aplicación consiste en habilitar la autenticación. Puede usar la autenticación de formularios o la de Windows. La propia aplicación administra la autenticación de formularios, y los usuarios deben proporcionar un nombre de usuario y una contraseña para tener acceso a la aplicación. En la autenticación de Windows, las credenciales que se utilizaron para iniciar sesión en el equipo donde se ejecuta la aplicación se usan para autenticar al usuario de la aplicación, y no se requiere ningún nombre de usuario ni contraseña adicionales. En ambos casos, el administrador de la aplicación mantiene una lista de usuarios autorizados; en la autenticación de formularios, el administrador también mantiene las contraseñas cifradas.

Para habilitar la autenticación

  1. En el Explorador de soluciones, abra el menú contextual del nodo Propiedades y, a continuación, elija Abrir.

  2. En el Diseñador de aplicaciones, elija la pestaña Control de acceso.

  3. En la lista Seleccione el tipo de autenticación que quiera usar, elija Usar autenticación de Windows o Usar autenticación de formularios.

    Si elige Usar autenticación de Windows, elija el botón de opción Permitir solo a los usuarios y a los grupos de seguridad de Active Directory especificados en la pantalla Usuarios de la aplicación o el botón de opción Permitir a todo usuario de Windows autenticado.

    La aplicación solicitará ahora a los usuarios que proporcionen las credenciales para tener acceso.

Para deshabilitar la autenticación

  1. En el Explorador de soluciones, abra el menú contextual del nodo Propiedades y, a continuación, elija Abrir.

  2. En el Diseñador de aplicaciones, elija la pestaña Control de acceso.

  3. En la lista Seleccione el tipo de autenticación que quiera usar, elija No habilitar autenticación.

    La aplicación no solicitará a los usuarios que proporcionen las credenciales para tener acceso a la aplicación, y todos los usuarios tendrán acceso a todas las secciones de la aplicación.

Permisos

El siguiente paso para proteger la aplicación consiste en crear permisos. Puede definir los permisos para las pantallas, los comandos, las entidades de datos o las consultas. Primero, defina un objeto de permiso en el Diseñador de aplicaciones. A continuación, puede hacer referencia al objeto en el código, en uno de los métodos de Can como CanRun<NombreDePantalla> o <NombreDeConsulta>_CanExecute. Generalmente, el código de estos métodos comprueba si el usuario o el rol actual tiene el permiso y, a continuación, muestra el formulario o ejecuta la consulta solo si se valida el permiso.

Para probar el código, ejecute la aplicación como un usuario que tiene permiso y como un usuario que no lo tiene. Si establece permisos de depuración, puede suplantar a un usuario al probar o depurar la aplicación.

Para crear un permiso

  1. En el Explorador de soluciones, abra el menú contextual del nodo Propiedades y, a continuación, elija Abrir.

  2. En el Diseñador de aplicaciones, elija la pestaña Control de acceso.

  3. En la cuadrícula Defina o seleccione los permisos que se usarán para la depuración, en la columna Nombre, elija <Agregar nuevo permiso> y, después, escriba un nombre de programación para el permiso.

    El nombre debe comenzar por un carácter alfabético y solo puede contener caracteres alfabéticos, numéricos o de subrayado.

  4. En la columna Nombre para mostrar, escriba el nombre del permiso tal y como desea que aparezca en la pantalla que el administrador de la aplicación va a utilizar para asignar los roles.

  5. En la columna Descripción, escriba una descripción para el permiso.

Para escribir código y establecer permisos para una pantalla

  1. En el Explorador de soluciones, abra el menú contextual para un nodo de pantalla y, a continuación, elija Abrir.

    Se abre el Diseñador de pantallas para esa pantalla.

  2. En la lista Escribir código, elija CanRunNombreDePantalla, donde NombreDePantalla es el nombre de la pantalla seleccionada.

  3. En el Editor de código, escriba el siguiente código en el método CanRunNombreDePantalla:

    If Application.User.HasPermission(Can_View_Products) Then
        result =  True
    Else
        result = False
    End If
    
    if (Application.User.HasPermission(Permissions.Can_View_Products)) 
    {
        result = true;
    } 
    else 
    {
        result = false;
    }
    

    Este código se evalúa cada vez que se inicia la aplicación.

    Nota

    Observe que en el código de ejemplo se comprueba un permiso denominado Can_View_Products.Reemplace el nombre de un permiso definido en la aplicación.

Para escribir código y establecer permisos para un comando

  1. En el Explorador de soluciones, abra el menú contextual para un nodo de pantalla y, a continuación, elija Abrir.

    Se abre el Diseñador de pantallas para esa pantalla.

  2. En el panel Árbol de contenido de pantalla, expanda un nodo de comandos y, a continuación, elija el comando para el que desea escribir código.

  3. Abra el menú contextual para el comando y elija NombreDeBotón**_CanExecute**, donde NombreDeBotón es el nombre del comando que eligió.

  4. En el Editor de código, escriba el código que quiera agregar al método NombreDeBotón**_CanExecute**.

    Nota

    Para obtener un ejemplo de código, vea la sección "Para escribir el código para establecer los permisos para una pantalla" anteriormente en este tema.

Para escribir código y establecer permisos para una entidad

  1. En el Explorador de soluciones, abra el menú contextual para un nodo de entidad y, a continuación, elija Abrir.

    Se abre el Entity Designer para esa entidad.

  2. En Entity Designer, en la barra Perspectiva, elija Servidor.

  3. En la lista Escribir código, elija un método de NombreDeEntidad**_Can**Operación, donde NombreDeEntidad es el nombre de la entidad y Operación es el nombre de la operación para la que quiere escribir código.

    Nota

    Los métodos disponibles varían según el contexto.Algunos ejemplos son CanDelete y CanUpdate.

  4. En el Editor de código, escriba el código que quiera agregar al método NombreDeEntidad**_Can**Operación.

    Nota

    Para obtener un ejemplo de código, vea la sección "Para escribir el código para establecer los permisos para una pantalla" anteriormente en este tema.

Para escribir código y establecer permisos para una consulta

  1. En el Explorador de soluciones, abra el menú contextual para un nodo de consulta y, a continuación, elija Abrir.

    Se abre el Diseñador de consultas para esa consulta.

  2. En la lista Escribir código, elija uno de los métodos NombreDeConsulta**_CanExecute**, donde NombreDeConsulta es el nombre de la consulta.

  3. En el Editor de código, escriba el código que quiera usar en el método NombreDeConsulta**_CanExecute**.

    Nota

    Para obtener un ejemplo de código, vea la sección "Para escribir el código para establecer los permisos para una pantalla" anteriormente en este tema.

Para habilitar los permisos para la depuración

  1. En el Explorador de soluciones, abra el menú contextual del nodo Propiedades y, a continuación, elija Abrir.

  2. En el Diseñador de aplicaciones, elija la pestaña Control de acceso.

  3. En la cuadrícula Defina o seleccione los permisos que se usarán para la depuración:, elija el permiso que desea habilitar para depuración y, después, active la casilla Concedido para depuración.

Publicación y administración

El paso final para habilitar la autenticación es definir un administrador predeterminado para la aplicación durante la publicación. Una vez publicado, el administrador predeterminado debe iniciar sesión y definir usuarios, roles y permisos.

Para definir un administrador

  • Siga los pasos del procedimiento descrito en Administrar una aplicación de LightSwitch.

    Importante

    Si está habilitada la autenticación y no ha definido un administrador predeterminado, no podrá obtener acceso a la aplicación publicada.

Vea también

Tareas

Administrar una aplicación de LightSwitch

Cómo: Habilitar la autenticación en una aplicación de cliente HTML

Conceptos

Consideraciones de seguridad para LightSwitch

Otros recursos

Pantallas de cliente de Silverlight para aplicaciones de LightSwitch

Grupos de seguridad de Active Directory