Compartir a través de


ClientRolePrincipal.IsInRole(String) Método

Definición

Obtiene un valor que indica si el usuario representado por el ClientRolePrincipal está en el rol especificado.

public:
 virtual bool IsInRole(System::String ^ role);
public bool IsInRole (string role);
abstract member IsInRole : string -> bool
override this.IsInRole : string -> bool
Public Function IsInRole (role As String) As Boolean

Parámetros

role
String

Rol que se va a comprobar.

Devoluciones

true si el usuario está en el rol especificado; false si el usuario no está en el rol especificado o no está autenticado.

Implementaciones

Ejemplos

En el código de ejemplo siguiente se muestra cómo usar este método para mostrar un botón solo cuando el usuario está en el rol "administrador". En este ejemplo se requiere un Button denominado managerOnlyButton con un valor de propiedad de Visible inicial de false.

private void DisplayButtonForManagerRole()
{
    try
    {
        ClientRolePrincipal rolePrincipal =
            System.Threading.Thread.CurrentPrincipal 
            as ClientRolePrincipal;

        if (rolePrincipal != null && rolePrincipal.IsInRole("manager"))
        {
            managerOnlyButton.Visible = true;
        }
    }
    catch (System.Net.WebException)
    {
        MessageBox.Show("Unable to access the roles service.",
            "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
    }
}
Private Sub DisplayButtonForManagerRole()

    Try

        Dim rolePrincipal As ClientRolePrincipal = TryCast( _
            System.Threading.Thread.CurrentPrincipal, ClientRolePrincipal)

        If rolePrincipal IsNot Nothing And _
            rolePrincipal.IsInRole("manager") Then

            managerOnlyButton.Visible = True

        End If

    Catch ex As System.Net.WebException

        MessageBox.Show("Unable to access the role service.", _
            "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning)

    End Try

End Sub

Comentarios

Normalmente, llamará al método IsInRole del IPrincipal devuelto por la propiedad staticThread.CurrentPrincipal. Sin embargo, puede convertir el valor de la propiedad CurrentPrincipal en una referencia de ClientRolePrincipal para llamar explícitamente a este método, como se muestra en la sección Ejemplo.

El método IsInRole siempre devolverá false si el inicio de sesión del usuario ha expirado. Esto no se producirá si la aplicación llama al método IsInRole una vez después de la autenticación. Si la aplicación debe recuperar roles de usuario en otras ocasiones, es posible que quiera agregar código para volver a validar los usuarios cuyo inicio de sesión ha expirado. Si todos los usuarios válidos están asignados a roles, puede determinar si el inicio de sesión ha expirado llamando al método ClientRoleProvider.GetRolesForUser. Si no se devuelve ningún rol, el inicio de sesión ha expirado. Para obtener un ejemplo de esta funcionalidad, consulte el método GetRolesForUser. Esta funcionalidad solo es necesaria si ha seleccionado Requerir que los usuarios inicien sesión de nuevo cada vez que la cookie del servidor expire en la configuración de la aplicación.

Se aplica a

Consulte también