Общие сведения о службах клиентских приложений
Обновлен: Ноябрь 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, описанных в предыдущих разделах. Прямой доступ к этим классам требуется для реализации дополнительных возможностей, таких как выход из программы и автономный режим.
Примечание. |
---|
Все интерфейсы API служб приложений являются синхронными. Службы приложений не имеют прямой поддержки асинхронной работы. |
Поставщики служб приложений реализуют или расширяют стандартные типы .NET Framework 2.0, но не реализуют все члены и функции, определенные этими типами. Например, невозможно использовать поставщиков служб приложений для реализации приложения управления пользователями с созданием новых пользователей и управлением принадлежностью к ролям. Для реализации таких функций потребуется веб-приложение и код на стороне сервера. Сведения о том, какие члены не реализуются, см. в справочной документации, которая доступна по ссылкам в этой таблице.
Класс |
Описание |
---|---|
Этот класс управляет удостоверениями пользователей и файлам "cookie" проверки подлинности для проверки подлинности в формах. Основная причина прямого доступа к этому классу — вызов метода RevalidateUser, который скрытым образом выполняет проверку пользователей (например, при переключении из автономного режима в оперативный). После проверки подлинности с помощью форм можно извлечь текущий экземпляр этого класса посредством свойства Identity ссылки IPrincipal, полученной с помощью свойства static Thread.CurrentPrincipal. |
|
Этот класс управляет ролями пользователей. Непрямой доступ возможен ко всем членам этого класса. Однако после проверки подлинности пользователя можно получить доступ к экземпляру этого класса с помощью свойства static Thread.CurrentPrincipal. |
|
Этот класс предоставляет свойство static IsOffline, которое используется для переключения приложения в автономный режим. Дополнительные сведения см. в разделе Практическое руководство. Автономная работа со службами клиентских приложений. |
|
Этот класс предоставляет учетные данные пользователей. Этот класс используется только в качестве типа возвращаемого значения метода GetCredentials при реализации интерфейса IClientFormsAuthenticationCredentialsProvider. |
|
Этот класс управляет доступом к удаленной службе проверки подлинности для проверки подлинности в формах. Основная причина прямого доступа к этому классу — использование его членов Logout и UserValidated, которые не реализованы базовым классом MembershipProvider. Также можно программно указать расположение службы с помощью свойства ServiceUri. Можно извлечь экземпляр этого класса с помощью свойства static Membership.Provider. |
|
Этот класс управляет проверкой подлинности Windows. Основная причина прямого доступа к этому классу — вызов его метода Logout. После выхода из приложения пользователь останется в текущем сеансе Windows, но не будет иметь доступа к удаленным службам приложения. Можно извлечь экземпляр этого класса с помощью свойства static Membership.Provider. |
|
Этот класс управляет доступом к удаленной службе ролей. Основная причина доступа к этому классу — вызов его метода ResetCache. Это может пригодиться, если в приложении настроен срок ожидания службы ролей, отличный от нуля. Дополнительные сведения см. в разделе Практическое руководство. Настройка служб клиентских приложений. Также можно программно указать расположение службы с помощью свойства ServiceUri. Можно извлечь экземпляр этого класса с помощью свойства static Roles.Provider. |
|
Этот класс управляет доступом к удаленной службе веб-параметров. Основная причина доступа к этому классу — обработка события SettingsSaved. Также можно программно указать расположение службы с помощью свойства ServiceUri. |
|
Этот интерфейс предоставляет приложению опосредованный способ получения учетных данных пользователей для проверки, как описано в главе "Проверка подлинности" в этом разделе. Дополнительные сведения см. в разделе Практическое руководство. Настройка служб клиентских приложений. |
|
Этот класс предоставляет свойство FailedSettingsList для использования в обработчике событий ClientSettingsProvider.SettingsSaved. |
|
Этот класс предоставляет свойство UserName для использования в обработчике событий UserValidated. |
См. также
Задачи
Практическое руководство. Настройка служб клиентских приложений
Практическое руководство. Доступ к ролям пользователей с помощью служб клиентских приложений
Руководство: доступ к параметрам пользователей с помощью служб клиентских приложений
Практическое руководство. Автономная работа со службами клиентских приложений
Пошаговое руководство. Использование служб клиентских приложений
Основные понятия
Общие сведения о параметрах приложений
Общие сведения о службах приложений ASP.NET
Использование проверки подлинности с помощью форм в ASP.NET AJAX
Использование информации ролей с помощью ASP.NET AJAX
Использование сведений о профиле с ASP.NET AJAX
Другие ресурсы
Управление параметрами приложения
Управление авторизацией с помощью ролей
Создание и настройка базы данных служб приложения для SQL Server