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
Комментарии
Функция служб клиентских приложений использует этот класс для представления пользователя, прошедшего проверку подлинности. При настройке приложения для использования служб клиентских приложений и проверки подлинности форм пользователь может пройти проверку подлинности, вызвав метод static
Membership.ValidateUser. После проверки подлинности можно получить ссылку на текущий экземпляр ClientFormsIdentity через свойство IdentityIPrincipal, полученное через свойство static
Thread.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) |