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 por 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 verificar.
Retornos
true
se o usuário está na função especificada; false
se o usuário não está autenticado ou não está na função especificada.
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 inicial de .false
Visible
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 IsInRole método do IPrincipal retornado pela static
Thread.CurrentPrincipal propriedade . No entanto, você pode converter o valor da CurrentPrincipal propriedade em uma ClientRolePrincipal referência 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 IsInRole método uma vez logo após a autenticação. Se seu aplicativo precisar recuperar funções de usuário em outros momentos, convém adicionar código para revalidar usuários cujo logon tiver expirado. Se todos os usuários válidos forem atribuídos às funções, você poderá determinar se o logon expirou chamando o método ClientRoleProvider.GetRolesForUser. Se nenhuma função tiver sido retornada, isso significará que o logon expirou. Para ver um exemplo dessa funcionalidade, consulte o método GetRolesForUser. Essa funcionalidade somente será necessária se você tiver selecionado Exigir que os usuários façam logon novamente sempre que o cookie de servidor expirar na configuração do aplicativo.
Aplica-se a
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de