Udostępnij za pośrednictwem


ClientFormsIdentity.RevalidateUser Metoda

Definicja

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.

Dotyczy

Zobacz też