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


ClientFormsIdentity Класс

Определение

Представляет удостоверение пользователя, прошедшее проверку подлинности для служб клиентских приложений с помощью проверки подлинности форм.

public ref class ClientFormsIdentity : IDisposable, System::Security::Principal::IIdentity
public class ClientFormsIdentity : IDisposable, System.Security.Principal.IIdentity
type ClientFormsIdentity = class
    interface IIdentity
    interface IDisposable
Public Class ClientFormsIdentity
Implements IDisposable, IIdentity
Наследование
ClientFormsIdentity
Реализации

Примеры

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

Заметка

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

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

Комментарии

Функция служб клиентских приложений использует этот класс для представления пользователя, прошедшего проверку подлинности. При настройке приложения для использования клиентских служб приложений и проверки подлинности форм можно пройти проверку подлинности пользователя, вызвав staticMembership.ValidateUser метод. После проверки подлинности можно получить ссылку на текущий ClientFormsIdentity экземпляр с помощью Identity свойства, полученного IPrincipal через staticThread.CurrentPrincipal свойство. Дополнительные сведения см. в разделе "Службы клиентских приложений".

Как правило, вы будете обращаться к ClientFormsIdentity объекту IIdentity в качестве ссылки, чтобы избежать прямой зависимости от этого класса. Вы можете определить, проходит ли проверка подлинности пользователя, проверив IIdentity.IsAuthenticated свойство удостоверения. Однако пользователь может пройти проверку подлинности для Windows, но не для служб клиентских приложений. Чтобы определить, прошел ли пользователь проверку подлинности для служб клиентских приложений, необходимо также подтвердить, что IIdentity.AuthenticationType значение свойства — ClientForms.

Для вызова RevalidateUser метода необходимо использовать явную ClientFormsIdentity ссылку, которая не определена интерфейсомIIdentity.

Конструкторы

Имя Описание
ClientFormsIdentity(String, String, MembershipProvider, String, Boolean, CookieContainer)

Инициализирует новый экземпляр класса ClientFormsIdentity.

Свойства

Имя Описание
AuthenticationCookies

Возвращает коллекцию файлов cookie, полученных из службы проверки подлинности.

AuthenticationType

Возвращает тип проверки подлинности, используемый для проверки подлинности пользователя.

IsAuthenticated

Возвращает значение, указывающее, прошел ли пользователь проверку подлинности.

Name

Возвращает имя пользователя.

Provider

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

Методы

Имя Описание
Dispose()

Освобождает все ресурсы, используемые параметром ClientFormsIdentity.

Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые ClientFormsIdentity и при необходимости освобождает управляемые ресурсы.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
RevalidateUser()

Автоматически выполняет проверку подлинности пользователя с помощью кэшированных учетных данных.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

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

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