ClientRolePrincipal.IsInRole(String) Método

Definição

Recebe um valor que indica se o utilizador representado por o ClientRolePrincipal está no papel 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

O papel a verificar.

Devoluções

true se o utilizador estiver na função especificada; false se o utilizador não estiver no papel especificado ou não estiver autenticado.

Implementações

Exemplos

O código de exemplo seguinte demonstra como usar este método para mostrar um botão apenas quando o utilizador está no papel de "gestor". Este exemplo requer um Button nome managerOnlyButton com valor inicial Visible de propriedade .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

Observações

Normalmente, irá chamar o IsInRole método do IPrincipal retorno pela staticThread.CurrentPrincipal propriedade. No entanto, pode castar o CurrentPrincipal valor da propriedade para uma ClientRolePrincipal referência para chamar explicitamente este método, como demonstrado na secção de Exemplo.

O IsInRole método devolve false sempre se o login do utilizador tiver expirado. Isto não acontecerá se a sua aplicação chamar o IsInRole método uma vez pouco depois da autenticação. Se a sua aplicação tiver de recuperar papéis de utilizador noutras alturas, poderá querer adicionar código para revalidar utilizadores cujo login expirou. Se todos os utilizadores válidos estiverem atribuídos a funções, pode determinar se o login expirou chamando o ClientRoleProvider.GetRolesForUser método. Se não forem devolvidos papéis, o login expirou. Para um exemplo desta funcionalidade, veja o GetRolesForUser método. Esta funcionalidade só é necessária se tiver selecionado Exigir que os utilizadores voltem a iniciar sessão sempre que o cookie do servidor expirar na configuração da sua aplicação.

Aplica-se a

Ver também