ClientFormsIdentity.RevalidateUser Metodo

Definizione

Autentica automaticamente l'utente usando 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 durante la modalità offline.

Note

Il RevalidateUser metodo è solo per praticità. Poiché non ha un valore restituito, non può indicare se la riconvalida non è riuscita. La riconvalida può avere esito negativo, ad esempio se le credenziali utente sono state modificate nel server. In questo caso, potrebbe essere necessario includere codice che convalida in modo esplicito gli utenti dopo che una chiamata al servizio ha esito negativo. Per altre informazioni, vedere la sezione Accesso alle impostazioni Web in Procedura dettagliata: Uso dei servizi applicazione client.

Si applica a

Vedi anche