Condividi tramite


ClientFormsIdentity.RevalidateUser Metodo

Definizione

Autentica automaticamente l'utente utilizzando le credenziali memorizzate nella cache.

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

Esempio

Il codice di esempio seguente illustra come usare questo metodo per riconvalidare automaticamente un utente quando l'applicazione lascia lo stato offline. In questo esempio, un CheckedChanged gestore eventi aggiorna lo stato offline in modo che corrisponda al valore della casella di controllo. Se l'utente imposta l'applicazione sullo stato online, il gestore eventi tenta di riconvalidare l'utente. Tuttavia, se il server di autenticazione non è disponibile, il gestore eventi restituisce l'applicazione allo stato 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

Commenti

Quando si usa l'autenticazione basata su form per convalidare l'utente corrente, la ClientFormsIdentity classe archivia le credenziali utente purché l'applicazione sia in esecuzione. Tuttavia, l'utente viene autenticato solo fino alla scadenza del cookie di autenticazione. Dopo la scadenza del cookie, l'utente deve essere riconvalidato per accedere ai ruoli remoti o ai servizi delle impostazioni Web. È possibile usare la finestra di dialogo Impostazioni avanzate per i servizi per configurare l'applicazione per riconvalidare automaticamente l'utente. Tuttavia, se si configura l'applicazione per rispettare la scadenza del cookie, è possibile riconvalidare a livello di codice l'utente chiamando il RevalidateUser metodo . Questo metodo è utile anche quando si passa dalla modalità offline alla modalità online, perché l'applicazione potrebbe essere stata arrestata mentre è offline.

Nota

Il metodo RevalidateUser viene fornito solo per praticità e poiché non restituisce un valore non può indicare se la riconvalida non è riuscita. La riconvalida può non riuscire, ad esempio, se le credenziali utente sono state modificato nel server. In questo caso, è necessario includere il codice che convalida in modo esplicito gli utenti dopo l'esito negativo di una chiamata al servizio. Per altre informazioni, vedere la sezione Accesso alle impostazioni Web in Procedura dettagliata: Uso dei servizi applicazione client.

Si applica a

Vedi anche