Поделиться через


ClientFormsIdentity.RevalidateUser Метод

Определение

Выполняет проверку подлинности пользователя без уведомления, используя кэшированные учетные данные.

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

Примеры

В следующем примере кода показано, как использовать этот метод для автоматической повторной проверки пользователя, когда приложение выходит из автономного состояния. В этом примере CheckedChanged обработчик событий обновляет состояние автономного режима в соответствии со значением флажка. Если пользователь устанавливает для приложения состояние "в сети", обработчик событий пытается повторно проверить пользователя. Однако если сервер проверки подлинности недоступен, обработчик событий возвращает приложение в автономное состояние.

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

Комментарии

При использовании проверки подлинности с помощью форм для проверки текущего пользователя ClientFormsIdentity класс сохраняет учетные данные пользователя до тех пор, пока приложение запущено. Однако пользователь проходит проверку подлинности только до истечения срока действия файла cookie проверки подлинности. После истечения срока действия файла cookie необходимо повторно проверить пользователя для доступа к удаленным ролям или службам веб-параметров. Вы можете использовать диалоговое окно Дополнительные параметры для служб, чтобы настроить приложение для автоматической повторной проверки пользователя. Однако если вы настраиваете приложение для учета срока действия файла cookie, вы можете программно повторно проверить пользователя, вызвав RevalidateUser метод . Этот метод также полезен при переключении из автономного режима в оперативный, так как приложение могло быть завершено в автономном режиме.

Примечание

Метод RevalidateUser предназначен исключительно для удобства. Поскольку у него отсутствуют возвращаемые значения, с его помощью нельзя выявлять ошибки при повторных проверках подлинности. Ошибка проверки подлинности может возникнуть, например, при изменении учетных данных пользователя на сервере. В этом случае вы можете использовать код, с помощью которого после ошибок вызова служб будет выполняться явная проверка подлинности пользователей. Дополнительные сведения см. в разделе Accessing Web Settings статьи Пошаговое руководство. Использование служб клиентских приложений.

Применяется к

См. также раздел