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


Общие сведения о службах клиентских приложений

Обновлен: Ноябрь 2007

Службы клиентского приложения позволяют легко получать доступ к службам имен входа, ролей и профилей ASP.NET AJAX из приложений Windows Forms и Windows Presentation Foundation (WPF). Службы приложений ASP.NET AJAX входят в Microsoft ASP.NET 2.0 AJAX (расширения), который поставляется с Visual Studio 2008 и с .NET Framework, версия 3.5. Эти службы позволяют нескольким веб-приложениям и приложениям для Windows получать данные о пользователях и функции управления пользователями с одного сервера.

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

  • Простая настройка клиентской части. Можно включить и настроить службы входа, ролей и профилей с помощью конструктора проектов Visual Studio или указав поставщиков служб в файле App.config проекта. Дополнительные сведения см. в разделе Практическое руководство. Настройка служб клиентских приложений.

  • Простое программирование. После включения и настройки клиентских служб приложений можно получить опосредованный доступ к поставщикам служб посредством классов членства, ролей и параметров приложений .NET Framework 2.0. Также обеспечивается прямой доступ к классам .NET Framework, версия 3.5 с пакетом обновления 1, реализующим клиентские службы приложений. Однако в большинстве случаев прямой доступ не нужен. Дополнительные сведения о классах клиентских служб приложений см. в главе "Классы клиентских служб приложений" в этом разделе.

  • Поддержка автономного режима. Приложения на базе Windows часто используются в средах, где подключение к сети есть не всегда. Когда приложение находится в оперативном режиме, поставщики служб кэшируют полученные с сервера значения, чтобы их можно было использовать в автономном режиме. Дополнительные сведения см. в разделе Практическое руководство. Автономная работа со службами клиентских приложений.

  • Интеграция с конструктором параметров приложений Visual Studio. При добавлении параметров в проект в Visual Studio можно указать, к каким параметрам будет осуществляться доступ посредством поставщика служб.

В следующих разделах эти функции описаны более подробно. Дополнительные сведения о службах приложений ASP.NET AJAX см. в разделе Общие сведения о службах приложений ASP.NET).

Проверка подлинности

Можно использовать службы клиентских приложений для проверки пользователей посредством существующей службы проверки подлинности ASP.NET AJAX. Для проверки можно использовать проверку подлинности Windows или проверку подлинности в формах. При проверке подлинности Windows используется удостоверение, предоставленное операционной системой, когда пользователь входил на компьютер или в домен. Проверка подлинности Windows обычно используется в приложении, развертываемом в корпоративной интрасети. Проверка подлинности в формах означает, что нужно добавить в приложение элементы управления входом и передавать полученные учетные данные поставщику проверки подлинности. Проверка подлинности форм обычно используется в приложении, развертываемом в Интернете.

Для проверки пользователя вызовите метод static Membership.ValidateUser. Этот метод получает доступ к поставщику клиентских служб, настроенному для вашего приложения, и возвращает значение Boolean, указывающее на то, что пользователь прошел проверку. Дополнительные сведения см. в разделе Практическое руководство. Реализация входа и выхода пользователя из системы с помощью служб клиентских приложений.

При использовании проверки подлинности Windows необходимо передать пустые строки или null в качестве параметров метода ValidateUser. При использовании проверки подлинности Windows этот вызов метода будет всегда возвращать значение true.

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

При использовании проверки подлинности в формах можно передать имя пользователя и пароль в метод ValidateUser. Для использования поставщика учетных данных можно передать пустые строки или null в качестве параметров. Поставщик учетных данных — это предоставляемый вами класс, указанный в конфигурации приложения. Поставщик учетных данных должен реализовать интерфейс IClientFormsAuthenticationCredentialsProvider с единственным методом, который называется GetCredentials. Использование поставщика учетных данных позволяет создать единое окно входа, которое можно использовать в разных приложениях. Дополнительные сведения см. в разделе Практическое руководство. Настройка служб клиентских приложений.

При настройке приложения для использования поставщика учетных данных с проверкой подлинности в формах необходимо передавать пустые строки или null в качестве параметров метода ValidateUser. Затем поставщик вызовет вашу реализацию метода IClientFormsAuthenticationCredentialsProvider.GetCredentials. Как правило, этот метод используется для отображения диалогового окна и возвращения заполненного объекта ClientFormsAuthenticationCredentials.

Дополнительные сведения о проверке подлинности см. в разделе Проверка подлинности ASP.NET. Дополнительные сведения о настройке службы проверки подлинности ASP.NET AJAX см. в разделе Использование проверки подлинности с помощью форм в ASP.NET AJAX.

Роли

Службы клиентских приложений позволяют извлекать данные ролей из существующей службы ролей ASP.NET AJAX. Чтобы определить принадлежность текущего пользователя к той или иной роли следует вызвать метод IsInRole ссылки IPrincipal, полученной из свойства static Thread.CurrentPrincipal. Метод IsInRole берет имя роли в качестве параметра и возвращает значение типа Boolean, указывающее, принадлежит ли пользователь к указанной роли. Этот метод вернет значение false, если пользователь не прошел проверку или не принадлежит к указанной роли.

Дополнительные сведения см. в разделе Практическое руководство. Доступ к ролям пользователей с помощью служб клиентских приложений. Дополнительные сведения о настройке службы ролей ASP.NET AJAX см. в разделе Использование информации ролей с помощью ASP.NET AJAX.

Параметры

Службы клиентских приложений позволяют извлекать пользовательские параметры приложений из существующей службы профилей ASP.NET AJAX. Функция веб-параметров служб приложений интегрируется с функцией параметров приложений в .NET Framework 2.0. Для извлечения веб-параметров сначала нужно создать класс Settings (Properties.Settings.Default в C# и My.Settings в Visual Basic) для проекта с помощью вкладки Параметры в конструкторе проектов Visual Studio. На вкладке Параметры с помощью кнопки Загрузить веб-параметры можно извлечь веб-параметры и добавить их в созданный класс Settings. Можно использовать веб-параметры, настроенные для всех проверенных пользователей или для всех анонимных пользователей.

Дополнительные сведения см. в разделе Руководство: доступ к параметрам пользователей с помощью служб клиентских приложений. Дополнительные сведения о параметрах приложений см. в разделе Общие сведения о параметрах приложений. Сведения о применении вашего собственного класса параметров вместо создания такого класса в Visual Studio см. в разделе Практическое руководство. Создание параметров приложения. Сведения о настройке службы профилей ASP.NET AJAX см. в разделе Использование сведений о профиле с ASP.NET AJAX.

Классы служб клиентских приложений

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

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

Bb384339.alert_note(ru-ru,VS.90).gifПримечание.

Все интерфейсы API служб приложений являются синхронными. Службы приложений не имеют прямой поддержки асинхронной работы.

Поставщики служб приложений реализуют или расширяют стандартные типы .NET Framework 2.0, но не реализуют все члены и функции, определенные этими типами. Например, невозможно использовать поставщиков служб приложений для реализации приложения управления пользователями с созданием новых пользователей и управлением принадлежностью к ролям. Для реализации таких функций потребуется веб-приложение и код на стороне сервера. Сведения о том, какие члены не реализуются, см. в справочной документации, которая доступна по ссылкам в этой таблице.

Класс

Описание

ClientFormsIdentity

Этот класс управляет удостоверениями пользователей и файлам "cookie" проверки подлинности для проверки подлинности в формах.

Основная причина прямого доступа к этому классу — вызов метода RevalidateUser, который скрытым образом выполняет проверку пользователей (например, при переключении из автономного режима в оперативный).

После проверки подлинности с помощью форм можно извлечь текущий экземпляр этого класса посредством свойства Identity ссылки IPrincipal, полученной с помощью свойства static Thread.CurrentPrincipal.

ClientRolePrincipal

Этот класс управляет ролями пользователей.

Непрямой доступ возможен ко всем членам этого класса. Однако после проверки подлинности пользователя можно получить доступ к экземпляру этого класса с помощью свойства static Thread.CurrentPrincipal.

ConnectivityStatus

Этот класс предоставляет свойство static IsOffline, которое используется для переключения приложения в автономный режим. Дополнительные сведения см. в разделе Практическое руководство. Автономная работа со службами клиентских приложений.

ClientFormsAuthenticationCredentials

Этот класс предоставляет учетные данные пользователей.

Этот класс используется только в качестве типа возвращаемого значения метода GetCredentials при реализации интерфейса IClientFormsAuthenticationCredentialsProvider.

ClientFormsAuthenticationMembershipProvider

Этот класс управляет доступом к удаленной службе проверки подлинности для проверки подлинности в формах.

Основная причина прямого доступа к этому классу — использование его членов Logout и UserValidated, которые не реализованы базовым классом MembershipProvider. Также можно программно указать расположение службы с помощью свойства ServiceUri.

Можно извлечь экземпляр этого класса с помощью свойства static Membership.Provider.

ClientWindowsAuthenticationMembershipProvider

Этот класс управляет проверкой подлинности Windows.

Основная причина прямого доступа к этому классу — вызов его метода Logout. После выхода из приложения пользователь останется в текущем сеансе Windows, но не будет иметь доступа к удаленным службам приложения.

Можно извлечь экземпляр этого класса с помощью свойства static Membership.Provider.

ClientRoleProvider

Этот класс управляет доступом к удаленной службе ролей.

Основная причина доступа к этому классу — вызов его метода ResetCache. Это может пригодиться, если в приложении настроен срок ожидания службы ролей, отличный от нуля. Дополнительные сведения см. в разделе Практическое руководство. Настройка служб клиентских приложений. Также можно программно указать расположение службы с помощью свойства ServiceUri.

Можно извлечь экземпляр этого класса с помощью свойства static Roles.Provider.

ClientSettingsProvider

Этот класс управляет доступом к удаленной службе веб-параметров.

Основная причина доступа к этому классу — обработка события SettingsSaved. Также можно программно указать расположение службы с помощью свойства ServiceUri.

IClientFormsAuthenticationCredentialsProvider

Этот интерфейс предоставляет приложению опосредованный способ получения учетных данных пользователей для проверки, как описано в главе "Проверка подлинности" в этом разделе. Дополнительные сведения см. в разделе Практическое руководство. Настройка служб клиентских приложений.

SettingsSavedEventArgs

Этот класс предоставляет свойство FailedSettingsList для использования в обработчике событий ClientSettingsProvider.SettingsSaved.

UserValidatedEventArgs

Этот класс предоставляет свойство UserName для использования в обработчике событий UserValidated.

См. также

Задачи

Практическое руководство. Настройка служб клиентских приложений

Практическое руководство. Реализация входа и выхода пользователя из системы с помощью служб клиентских приложений

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

Руководство: доступ к параметрам пользователей с помощью служб клиентских приложений

Практическое руководство. Автономная работа со службами клиентских приложений

Пошаговое руководство. Использование служб клиентских приложений

Основные понятия

Общие сведения о параметрах приложений

Общие сведения о службах приложений ASP.NET

Использование проверки подлинности с помощью форм в ASP.NET AJAX

Использование информации ролей с помощью ASP.NET AJAX

Использование сведений о профиле с ASP.NET AJAX

Другие ресурсы

Службы клиентских приложений

Управление параметрами приложения

Проверка подлинности ASP.NET

Управление авторизацией с помощью ролей

Создание и настройка базы данных служб приложения для SQL Server