ClientFormsIdentity.RevalidateUser Metod

Definition

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.

Gäller för

Se även