ClientFormsIdentity.RevalidateUser Méthode

Définition

Authentifie silencieusement l'utilisateur en utilisant des informations d'identification mises en cache.

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

Exemples

L’exemple de code suivant montre comment utiliser cette méthode pour revalider silencieusement un utilisateur lorsque l’application quitte l’état hors connexion. Dans cet exemple, un gestionnaire d’événements CheckedChanged met à jour l’état hors connexion pour qu’il corresponde à la valeur de la case à cocher. Si l’utilisateur définit l’état en ligne de l’application, le gestionnaire d’événements tente de revalider l’utilisateur. Toutefois, si le serveur d’authentification n’est pas disponible, le gestionnaire d’événements retourne l’application à l’état hors connexion.

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

Remarques

Lorsque vous utilisez l’authentification par formulaire pour valider l’utilisateur actuel, la ClientFormsIdentity classe stocke les informations d’identification de l’utilisateur tant que l’application est en cours d’exécution. Toutefois, l’utilisateur n’est authentifié que jusqu’à l’expiration du cookie d’authentification. Une fois le cookie expiré, l’utilisateur doit être revalidé pour accéder aux rôles distants ou aux services de paramètres Web. Vous pouvez utiliser la boîte de dialogue Paramètres avancés pour les services pour configurer votre application afin de revalider automatiquement l’utilisateur. Toutefois, si vous configurez votre application pour respecter l’expiration du cookie, vous pouvez revalider l’utilisateur par programmation en appelant la RevalidateUser méthode. Cette méthode est également utile lors du passage du mode hors connexion au mode en ligne, car l’application a peut-être été arrêtée en mode hors connexion.

Notes

La méthode RevalidateUser est fournie pour des raisons pratiques uniquement. Étant donné qu'elle n'a pas de valeur de retour, elle ne peut pas indiquer si la revalidation a échoué. La revalidation peut, par exemple, échouer si les informations d'identification de l'utilisateur ont été modifiées sur le serveur. Dans ce cas, vous souhaitez peut-être inclure du code qui valide explicitement les utilisateurs après l'échec d'un appel de service. Pour plus d’informations, consultez la section Accès aux paramètres web dans Procédure pas à pas : utilisation des services d’application client.

S’applique à

Voir aussi