ClientFormsIdentity.RevalidateUser Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Autentiserar användaren tyst med cachelagrade autentiseringsuppgifter.
public:
void RevalidateUser();
public void RevalidateUser();
member this.RevalidateUser : unit -> unit
Public Sub RevalidateUser ()
Exempel
Följande exempelkod visar hur du använder den här metoden för att tyst förnya en användare när programmet lämnar offlinetillståndet. I det här exemplet uppdaterar en CheckedChanged händelsehanterare offlinestatusen så att den matchar kryssrutans värde. Om användaren ställer in programmet på onlinetillståndet försöker händelsehanteraren att återvalidera användaren. Men om autentiseringsservern inte är tillgänglig returnerar händelsehanteraren programmet till offlinetillståndet.
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
Kommentarer
När du använder formulärautentisering för att verifiera den aktuella användaren ClientFormsIdentity lagrar klassen användarautentiseringsuppgifterna så länge programmet körs. Användaren autentiseras dock bara tills autentiseringscookien upphör att gälla. När cookien har upphört att gälla måste användaren återkallas för att få åtkomst till fjärrrollerna eller webbinställningar. Du kan använda dialogrutan Avancerade inställningar för tjänster för att konfigurera ditt program för att automatiskt förnya användaren. Men om du konfigurerar ditt program för att uppfylla cookiens giltighetstid kan du programmatiskt återskapa användaren genom att anropa RevalidateUser metoden. Den här metoden är också användbar när du växlar från offlineläge till onlineläge, eftersom programmet kan ha stängts av när det var offline.
Note
Metoden RevalidateUser är endast för enkelhetens skull. Eftersom det inte har något returvärde kan det inte ange om förlängningen har misslyckats. Omvalidering kan till exempel misslyckas om användarautentiseringsuppgifterna har ändrats på servern. I det här fallet kanske du vill inkludera kod som uttryckligen validerar användare när ett tjänstanrop misslyckas. Mer information finns i avsnittet Åtkomst till webbinställningar i Genomgång: Använda klientprogramtjänster.