ClientRolePrincipal.IsInRole(String) Método

Definição

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 .falseVisible

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 staticThread.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