ClientFormsIdentity.RevalidateUser Methode

Definition

Authentifiziert den Benutzer automatisch mithilfe zwischengespeicherter Anmeldeinformationen.

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

Beispiele

Im folgenden Beispielcode wird veranschaulicht, wie Sie diese Methode verwenden, um einen Benutzer im Hintergrund zu aktualisieren, wenn die Anwendung den Offlinezustand verlässt. In diesem Beispiel aktualisiert ein CheckedChanged Ereignishandler den Offlinestatus so, dass er mit dem Wert des Kontrollkästchens übereinstimmt. Wenn der Benutzer die Anwendung auf den Onlinestatus festlegt, versucht der Ereignishandler, den Benutzer erneut zu aktualisieren. 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 erst authentifiziert, wenn das Authentifizierungscookies abläuft. Nach Ablauf des Cookies muss der Benutzer erneut überprüft werden, um auf die Remoterollen oder Webdienste zuzugreifen. Sie können das Dialogfeld "Erweiterte Einstellungen für Dienste " verwenden, um Ihre Anwendung so zu konfigurieren, dass der Benutzer automatisch aktualisiert wird. Wenn Sie Ihre Anwendung jedoch so konfigurieren, dass der Cookieablauf berücksichtigt wird, können Sie den Benutzer programmgesteuert durch Aufrufen der RevalidateUser Methode erneut überprüfen. Diese Methode ist auch hilfreich, wenn Sie vom Offlinemodus in den Onlinemodus wechseln, da die Anwendung möglicherweise während des Offlinemodus heruntergefahren wurde.

Note

Die RevalidateUser Methode dient nur der Einfachheit halber. Da kein Rückgabewert vorliegt, kann nicht angegeben werden, ob die Erneute Überprüfung fehlgeschlagen ist. Die Erneute Überprüfung kann z. B. fehlschlagen, wenn sich die Benutzeranmeldeinformationen auf dem Server geändert haben. In diesem Fall möchten Sie möglicherweise Code einschließen, der Benutzer explizit überprüft, nachdem ein Dienstaufruf fehlschlägt. Weitere Informationen finden Sie im Abschnitt "Zugreifen auf Webeinstellungen" in "Walkthrough: Using Client Application Services".

Gilt für:

Weitere Informationen