ClientFormsIdentity.RevalidateUser Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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.