ClientRolePrincipal.IsInRole(String) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 static
Thread.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
- GetRolesForUser(String)
- IPrincipal
- IsInRole(String)
- CurrentPrincipal
- servicios de aplicaciones cliente de
- Configuración de servicios de aplicaciones cliente