ClientFormsIdentity.RevalidateUser Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Uwierzytelnia użytkownika w trybie dyskretnym przy użyciu buforowanych poświadczeń.
public:
void RevalidateUser();
public void RevalidateUser ();
member this.RevalidateUser : unit -> unit
Public Sub RevalidateUser ()
Przykłady
Poniższy przykładowy kod pokazuje, jak używać tej metody do dyskretnego zmiany użytkownika po opuszczeniu stanu offline przez aplikację. W tym przykładzie CheckedChanged program obsługi zdarzeń aktualizuje stan offline, aby był zgodny z wartością pola wyboru. Jeśli użytkownik ustawi aplikację na stan online, program obsługi zdarzeń próbuje ponownie odnowić użytkownika. Jeśli jednak serwer uwierzytelniania jest niedostępny, program obsługi zdarzeń zwraca aplikację do stanu 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
Uwagi
Gdy używasz uwierzytelniania formularzy do sprawdzania poprawności bieżącego użytkownika, ClientFormsIdentity klasa przechowuje poświadczenia użytkownika, o ile aplikacja jest uruchomiona. Jednak użytkownik jest uwierzytelniany tylko do momentu wygaśnięcia pliku cookie uwierzytelniania. Po wygaśnięciu pliku cookie użytkownik musi zostać ponownie odnowiony, aby uzyskać dostęp do ról zdalnych lub usług ustawień sieci Web. Możesz użyć okna dialogowego Ustawienia zaawansowane usług , aby skonfigurować aplikację tak, aby automatycznie ponownie aktualizowała użytkownika. Jeśli jednak skonfigurujesz aplikację tak, aby uhonorować wygaśnięcie pliku cookie, możesz programowo ponownie odświeżyć użytkownika, wywołując metodę RevalidateUser . Ta metoda jest również przydatna podczas przełączania z trybu offline na tryb online, ponieważ aplikacja mogła zostać zamknięta w trybie offline.
Uwaga
Metoda jest przeznaczona RevalidateUser tylko dla wygody. Ponieważ nie ma wartości zwracanej, nie może wskazywać, czy zmiana nie powiodła się. Na przykład zmiana poświadczeń użytkownika na serwerze może zakończyć się niepowodzeniem. W takim przypadku możesz dołączyć kod, który jawnie weryfikuje użytkowników po niepomyślnie wywołaniu usługi. Aby uzyskać więcej informacji, zobacz sekcję Uzyskiwanie dostępu do ustawień sieci Web w przewodniku: korzystanie z usług aplikacji klienckich.