Bagikan melalui


ClientFormsIdentity.RevalidateUser Metode

Definisi

Secara diam-diam mengautentikasi pengguna dengan menggunakan kredensial yang di-cache.

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

Contoh

Contoh kode berikut menunjukkan cara menggunakan metode ini untuk memvalidasi ulang pengguna secara diam-diam saat aplikasi meninggalkan status offline. Dalam contoh ini, penanganan CheckedChanged aktivitas memperbarui status offline agar sesuai dengan nilai kotak centang. Jika pengguna mengatur aplikasi ke status online, penanganan aktivitas mencoba memvalidasi ulang pengguna. Namun, jika server autentikasi tidak tersedia, penanganan aktivitas mengembalikan aplikasi ke status 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

Keterangan

Saat Anda menggunakan autentikasi formulir untuk memvalidasi pengguna saat ini, ClientFormsIdentity kelas menyimpan kredensial pengguna selama aplikasi berjalan. Namun, pengguna hanya diautentikasi sampai cookie autentikasi kedaluwarsa. Setelah cookie kedaluwarsa, pengguna harus divalidasi ulang untuk mengakses peran jarak jauh atau layanan pengaturan Web. Anda dapat menggunakan kotak dialog Pengaturan Tingkat Lanjut untuk Layanan untuk mengonfigurasi aplikasi Anda untuk memvalidasi ulang pengguna secara otomatis. Namun, jika Anda mengonfigurasi aplikasi untuk menghormati kedaluwarsa cookie, Anda dapat memvalidasi ulang pengguna secara terprogram dengan memanggil RevalidateUser metode . Metode ini juga berguna saat beralih dari mode offline ke mode online, karena aplikasi mungkin telah dimatikan saat offline.

Catatan

Metode RevalidateUser ini hanya untuk kenyamanan. Karena tidak memiliki nilai pengembalian, nilai tersebut tidak dapat menunjukkan apakah validasi ulang telah gagal. Validasi ulang dapat gagal, misalnya, jika kredensial pengguna telah berubah di server. Dalam hal ini, Anda mungkin ingin menyertakan kode yang secara eksplisit memvalidasi pengguna setelah panggilan layanan gagal. Untuk informasi selengkapnya, lihat bagian Mengakses Pengaturan Web di Panduan: Menggunakan Layanan Aplikasi Klien.

Berlaku untuk

Lihat juga