Compartilhar via


ClientFormsIdentity.RevalidateUser Método

Definição

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

public:
 void RevalidateUser();
public void RevalidateUser ();
member this.RevalidateUser : unit -> unit
Public Sub RevalidateUser ()

Exemplos

O código de exemplo a seguir demonstra como usar esse método 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 de seleção. Se o usuário definir o aplicativo como o estado online, o manipulador de eventos tentará revalidar o usuário. No entanto, se o servidor de autenticação não estiver disponível, o manipulador de eventos retornará o aplicativo para o estado offline.

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

Quando você usa a autenticação de formulários para validar o usuário atual, a ClientFormsIdentity classe armazena as credenciais do usuário enquanto o aplicativo estiver em execução. No entanto, o usuário só será autenticado até que o cookie de autenticação expire. Depois que o cookie expirar, o usuário deverá ser revalidado para acessar as funções remotas ou os serviços de configurações da Web. Você pode usar a caixa de diálogo Configurações Avançadas para Serviços para configurar seu aplicativo para revalidar automaticamente o usuário. No entanto, se você configurar seu aplicativo para respeitar a expiração do cookie, poderá revalidar programaticamente o usuário chamando o RevalidateUser método . Esse método também é útil ao alternar do modo offline para o modo online, pois o aplicativo pode ter sido desligado enquanto está 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.

Aplica-se a

Confira também