Partilhar via


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 deixa o estado offline. Neste exemplo, um manipulador de eventos CheckedChanged atualiza o status offline para corresponder ao valor da caixa de seleção. Se o usuário definir o aplicativo como o estado online, o manipulador de eventos tentará revalidar o usuário chamando o método RevalidateUser. No entanto, se o servidor de autenticação não estiver disponível, o manipulador de eventos retornará o aplicativo para o estado offline.

Nota

O método RevalidateUser é apenas para conveniência. Como ele não tem um valor retornado, não pode indicar se a revalidação falhou. A revalidação poderá falhar, por exemplo, se as credenciais do usuário tiverem sido alteradas no servidor. Nesse caso, talvez você queira incluir um código que valide explicitamente os usuários depois que 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 os 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 serviços de aplicativo cliente usa essa classe para representar um usuário autenticado. Ao configurar seu aplicativo para usar os serviços de aplicativo cliente e a autenticação de formulários, você pode autenticar um usuário chamando o método staticMembership.ValidateUser. Após a autenticação, você pode recuperar uma referência à instância de ClientFormsIdentity atual por meio da propriedade Identity do IPrincipal recuperado por meio da propriedade staticThread.CurrentPrincipal. Para obter mais informações, consulte de Serviços de Aplicativo cliente.

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

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

Construtores

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

Inicializa uma nova instância da classe ClientFormsIdentity.

Propriedades

AuthenticationCookies

Obtém uma coleção de 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 Objectatual.

(Herdado de Object)
RevalidateUser()

Autentica silenciosamente 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