Share via


ClientFormsIdentity.RevalidateUser Methode

Definition

Authentifiziert den Benutzer automatisch mit zwischengespeicherten Anmeldeinformationen.

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

Beispiele

Der folgende Beispielcode veranschaulicht, wie Diese Methode verwendet wird, um einen Benutzer automatisch erneut zu überprüfen, wenn die Anwendung den Offlinezustand verlässt. In diesem Beispiel aktualisiert ein CheckedChanged Ereignishandler die Offline-status so, dass sie dem Kontrollkästchenwert entspricht. Wenn der Benutzer die Anwendung auf den Onlinezustand festlegt, versucht der Ereignishandler, den Benutzer erneut zu überprüfen. Wenn der Authentifizierungsserver jedoch nicht verfügbar ist, gibt der Ereignishandler die Anwendung in den Offlinezustand zurück.

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

Hinweise

Wenn Sie die Formularauthentifizierung verwenden, um den aktuellen Benutzer zu überprüfen, speichert die ClientFormsIdentity Klasse die Benutzeranmeldeinformationen, solange die Anwendung ausgeführt wird. Der Benutzer wird jedoch nur authentifiziert, bis das Authentifizierungscookies abläuft. Nach Ablauf des Cookies muss der Benutzer erneut überprüft werden, um auf die Remoterollen oder Webeinstellungsdienste zuzugreifen. Sie können das Dialogfeld Erweiterte Einstellungen für Dienste verwenden, um Ihre Anwendung so zu konfigurieren, dass der Benutzer automatisch erneut angezeigt wird. Wenn Sie Ihre Anwendung jedoch so konfigurieren, dass der Cookieablauf berücksichtigt wird, können Sie den Benutzer programmgesteuert erneut überprüfen, indem Sie die RevalidateUser -Methode aufrufen. Diese Methode ist auch nützlich, wenn Sie vom Offlinemodus in den Onlinemodus wechseln, da die Anwendung möglicherweise offline heruntergefahren wurde.

Hinweis

Die RevalidateUser -Methode wird nur ergänzend bereitgestellt. Da sie nicht über einen Rückgabewert verfügt, kann sie nicht angeben, ob die erneute Überprüfung fehlgeschlagen ist. Die erneute Überprüfung kann z. B. fehlschlagen, wenn die Anmeldeinformationen des Benutzers auf dem Server geändert wurden. In diesem Fall ist es ratsam, Code einzuschließen, der die Benutzer nach dem Fehlschlagen eines Dienstaufrufs explizit validiert. Weitere Informationen finden Sie im Abschnitt Zugreifen auf Webeinstellungen unter Exemplarische Vorgehensweise: Verwenden von Clientanwendungsdiensten.

Gilt für:

Weitere Informationen