ClientRolePrincipal.IsInRole(String) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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.