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 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 static
Thread.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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente las Cuestiones de GitHub como mecanismo de retroalimentación para el contenido y lo sustituiremos por un nuevo sistema de retroalimentación. Para más información, consulta:Enviar y ver comentarios de