Compartir a través de


ClientRolePrincipal.IsInRole(String) Método

Definición

Obtiene un valor que indica si el usuario representado por ClientRolePrincipal está incluido 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 se ha 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 nombre managerOnlyButton con un valor de propiedad inicial Visible 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 IsInRole método del IPrincipal devuelto por la staticThread.CurrentPrincipal propiedad . Sin embargo, puede convertir el valor de propiedad CurrentPrincipal en una ClientRolePrincipal referencia 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 de usuario expiró. Esto no se producirá si la aplicación llama al método una vez poco después de la IsInRole autenticación. Si la aplicación debe recuperar los roles de usuario en otras ocasiones, conviene agregar código para volver a validar a los usuarios cuyo inicio de sesión haya expirado. Si todos los usuarios válidos están asignados a roles, puede determinar si el inicio de sesión expiró llamando al método ClientRoleProvider.GetRolesForUser . Si no se devuelve ningún rol, el inicio de sesión expiró. Para obtener un ejemplo de esta funcionalidad, consulte el método GetRolesForUser . Esta funcionalidad solo es necesaria si seleccionó Exigir que los usuarios vuelvan a iniciar sesión cuando expire la cookie del servidor en la configuración de la aplicación.

Se aplica a

Consulte también