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


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 через свойство IdentityIPrincipal, полученное через свойство 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)

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

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