ClientFormsIdentity Classe

Definição

Representa uma identidade de usuário autenticada para serviços de aplicativo cliente usando a autenticação de formulários.

public ref class ClientFormsIdentity : IDisposable, System::Security::Principal::IIdentity
public class ClientFormsIdentity : IDisposable, System.Security.Principal.IIdentity
type ClientFormsIdentity = class
    interface IIdentity
    interface IDisposable
Public Class ClientFormsIdentity
Implements IDisposable, IIdentity
Herança
ClientFormsIdentity
Implementações

Exemplos

O código de exemplo a seguir demonstra como usar essa classe para revalidar silenciosamente um usuário quando o aplicativo sair do estado offline. Neste exemplo, um CheckedChanged manipulador de eventos atualiza o status offline para corresponder ao valor da caixa marcar. Se o usuário definir o aplicativo como o estado online, o manipulador de eventos tentará revalidar o usuário chamando o RevalidateUser método . No entanto, se o servidor de autenticação não estiver disponível, o manipulador de eventos retornará o aplicativo para o estado offline.

Observação

O método RevalidateUser é apenas para conveniência. Como ele não tem um valor de retorno, não é possível indicar se a revalidação falhou. A revalidação pode falhar, por exemplo, se as credenciais do usuário tiverem sido alteradas no servidor. Nesse caso, você talvez queira incluir o código que valida usuários explicitamente após uma chamada de serviço falhar. Para obter mais informações, consulte a seção Acessando configurações da Web em Passo a passo: usando serviços de aplicativo cliente.

private void workOfflineCheckBox_CheckedChanged(
    object sender, EventArgs e)
{
    ConnectivityStatus.IsOffline = workOfflineCheckBox.Checked;
    if (!ConnectivityStatus.IsOffline)
    {
        try
        {
            // Silently re-validate the user.
            ((ClientFormsIdentity)
                System.Threading.Thread.CurrentPrincipal.Identity)
                .RevalidateUser();

            // If any settings have been changed locally, save the new
            // new values to the Web settings service.
            SaveSettings();

            // If any settings have not been changed locally, check 
            // the Web settings service for updates. 
            Properties.Settings.Default.Reload();
        }
        catch (System.Net.WebException)
        {
            MessageBox.Show(
                "Unable to access the authentication service. " +
                Environment.NewLine + "Staying in offline mode.",
                "Warning", MessageBoxButtons.OK, 
                MessageBoxIcon.Warning);
            workOfflineCheckBox.Checked = true;
        }
    }
}
Private Sub workOfflineCheckBox_CheckedChanged( _
    ByVal sender As Object, ByVal e As EventArgs) _
    Handles workOfflineCheckBox.CheckedChanged

    ConnectivityStatus.IsOffline = workOfflineCheckBox.Checked
    If Not ConnectivityStatus.IsOffline Then

        Try

            ' Silently re-validate the user.
            CType(System.Threading.Thread.CurrentPrincipal.Identity,  _
                ClientFormsIdentity).RevalidateUser()

            ' If any settings have been changed locally, save the new
            ' new values to the Web settings service.
            SaveSettings()

            ' If any settings have not been changed locally, check 
            ' the Web settings service for updates. 
            My.Settings.Reload()

        Catch ex As System.Net.WebException

            MessageBox.Show( _
                "Unable to access the authentication service. " & _
                Environment.NewLine + "Staying in offline mode.", _
                "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            workOfflineCheckBox.Checked = True

        End Try

    End If
End Sub

Comentários

O recurso de serviços de aplicativo cliente usa essa classe para representar um usuário autenticado. Ao configurar seu aplicativo para usar serviços de aplicativos cliente e autenticação de formulários, você pode autenticar um usuário chamando o staticMembership.ValidateUser método . Após a autenticação, você pode recuperar uma referência à instância atual ClientFormsIdentity por meio da Identity propriedade do IPrincipal recuperado por meio da staticThread.CurrentPrincipal propriedade . Para obter mais informações, consulte Serviços de aplicativo cliente.

Normalmente, você acessará um ClientFormsIdentity objeto como uma IIdentity referência para evitar uma dependência direta nessa classe. Você pode determinar se um usuário é autenticado verificando a IIdentity.IsAuthenticated propriedade da identidade. No entanto, o usuário pode ser autenticado para Windows, mas não para serviços de aplicativos cliente. Para determinar se o usuário está autenticado para serviços de aplicativo cliente, você também deve confirmar se o valor da IIdentity.AuthenticationType propriedade é "ClientForms".

Você deve usar uma referência explícita ClientFormsIdentity para chamar o RevalidateUser método , que não é definido pela IIdentity interface .

Construtores

ClientFormsIdentity(String, String, MembershipProvider, String, Boolean, CookieContainer)

Inicializa uma nova instância da classe ClientFormsIdentity.

Propriedades

AuthenticationCookies

Obtém uma coleção dos cookies recuperados do serviço de autenticação.

AuthenticationType

Obtém o tipo de autenticação usado para autenticar o usuário.

IsAuthenticated

Obtém um valor que indica se o usuário foi autenticado.

Name

Obtém o nome do usuário.

Provider

Obtém o provedor de associação usado para autenticar o usuário.

Métodos

Dispose()

Libera todos os recursos usados pelo ClientFormsIdentity.

Dispose(Boolean)

Libera os recursos não gerenciados usados pelo ClientFormsIdentity e opcionalmente libera os recursos gerenciados.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
RevalidateUser()

Silenciosamente autentica o usuário usando credenciais armazenadas em cache.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Confira também