ClientFormsIdentity.RevalidateUser Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 den Offlinestatus so, dass er mit dem Kontrollkästchenwert übereinstimmt. 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.