ClientRolePrincipal.IsInRole(String) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém um valor que indica se o usuário representado pelo ClientRolePrincipal está na função especificada.
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
A função a ser verificada.
Retornos
true
se o usuário estiver na função especificada; false
se o usuário não estiver na função especificada ou não estiver autenticado.
Implementações
Exemplos
O código de exemplo a seguir demonstra como usar esse método para exibir um botão somente quando o usuário estiver na função "gerente". Este exemplo requer um Button nomeado managerOnlyButton
com um valor de propriedade 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
Comentários
Normalmente, você chamará o método IsInRole do IPrincipal retornado pela propriedade static
Thread.CurrentPrincipal. No entanto, você pode converter o valor da propriedade CurrentPrincipal em uma referência ClientRolePrincipal para chamar esse método explicitamente, conforme demonstrado na seção Exemplo.
O método IsInRole sempre retornará false
se o logon do usuário tiver expirado. Isso não ocorrerá se o aplicativo chamar o método IsInRole uma vez logo após a autenticação. Se o aplicativo precisar recuperar funções de usuário em outras ocasiões, convém adicionar código para revalidar usuários cujo logon expirou. Se todos os usuários válidos forem atribuídos a funções, você poderá determinar se o logon expirou chamando o método ClientRoleProvider.GetRolesForUser. Se nenhuma função for retornada, o logon expirou. Para obter um exemplo dessa funcionalidade, consulte o método GetRolesForUser. Essa funcionalidade só será necessária se você tiver selecionado Exigir que os usuários façam logon novamente sempre que o cookie do servidor expirar na configuração do aplicativo.
Aplica-se a
Confira também
- GetRolesForUser(String)
- IPrincipal
- IsInRole(String)
- CurrentPrincipal
- de Serviços de Aplicativo Cliente
- Como configurar os Serviços de Aplicativo Cliente