ClientFormsIdentity.RevalidateUser Método

Definição

Autentica silenciosamente o utilizador usando credenciais em cache.

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

Exemplos

O seguinte exemplo de código demonstra como usar este método para revalidar silenciosamente um utilizador quando a aplicação sai do estado offline. Neste exemplo, um CheckedChanged gestor de eventos atualiza o estado offline para corresponder ao valor da caixa de seleção. Se o utilizador definir a aplicação para o estado online, o gestor de eventos tenta revalidar o utilizador. No entanto, se o servidor de autenticação não estiver disponível, o gestor de eventos devolve a aplicação ao 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

Observações

Quando usa autenticação de formulários para validar o utilizador atual, a ClientFormsIdentity classe armazena as credenciais do utilizador enquanto a aplicação estiver a funcionar. No entanto, o utilizador só é autenticado até o cookie de autenticação expirar. Após o término do cookie, o utilizador deve ser revalidado para aceder aos papéis remotos ou aos serviços de definições Web. Pode usar a caixa de diálogo Definições Avançadas para Serviços para configurar a sua aplicação para revalidar automaticamente o utilizador. No entanto, se configurar a sua aplicação para honrar a expiração dos cookies, pode revalidar programaticamente o utilizador chamando o RevalidateUser método. Este método também é útil ao mudar do modo offline para o modo online, porque a aplicação pode ter sido desligada enquanto offline.

Note

O RevalidateUser método é apenas por conveniência. Como não tem valor de retorno, não pode indicar se a revalidação falhou. A revalidação pode falhar, por exemplo, se as credenciais do utilizador tiverem sido alteradas no servidor. Neste caso, pode querer incluir código que valide explicitamente os utilizadores após a falha de uma chamada de serviço. Para mais informações, consulte a secção Aceder às Definições Web em Guia: Utilização de Serviços de Aplicação Cliente.

Aplica-se a

Ver também