Общие сведения о службах клиентских приложений
Службы клиентских приложений упрощают доступ к службам входа, ролей и профилей Microsoft Ajax из приложений Windows Forms и WPF (Windows Presentation Foundation). Службы приложения Microsoft 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, реализующим клиентские службы приложений. Однако в большинстве случаев прямой доступ не нужен. Дополнительные сведения о классах клиентских служб приложений см. в главе "Классы служб клиентских приложений" в этом разделе.
Поддержка автономного режима. Приложения на базе Windows часто используются в средах, где подключение к сети есть не всегда. Когда приложение находится в оперативном режиме, поставщики служб кэшируют полученные с сервера значения, чтобы их можно было использовать в автономном режиме. Дополнительные сведения см. в разделе Практическое руководство. Автономная работа со службами клиентских приложений.
Интеграция с конструктором параметров приложений Visual Studio. При добавлении параметров в проект в Visual Studio можно указать, к каким параметрам будет осуществляться доступ посредством поставщика служб.
В следующих разделах эти функции описаны более подробно. Дополнительные сведения о службах приложений Microsoft Ajax см. в разделе Общие сведения о службах приложений ASP.NET).
Проверка подлинности
Можно использовать службы клиентских приложений для проверки пользователей посредством существующей службы проверки подлинности Microsoft 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. Дополнительные сведения о настройке службы проверки подлинности Microsoft Ajax см. в разделе Использование проверки подлинности с помощью форм с Microsoft Ajax.
Роли
Службы клиентских приложений позволяют извлекать данные ролей из существующей службы ролей Microsoft Ajax. Чтобы определить принадлежность текущего пользователя к той или иной роли следует вызвать метод IsInRole ссылки IPrincipal, полученной из свойства static Thread.CurrentPrincipal. Метод IsInRole берет имя роли в качестве параметра и возвращает значение типа Boolean, указывающее, принадлежит ли пользователь к указанной роли. Этот метод вернет значение false, если пользователь не прошел проверку или не принадлежит к указанной роли.
Дополнительные сведения см. в разделе Практическое руководство. Доступ к ролям пользователей с помощью служб клиентских приложений. Дополнительные сведения о настройке службы ролей Microsoft Ajax см. в разделе Использование сведений о ролях с Microsoft Ajax.
Параметры
Службы клиентских приложений позволяют извлекать пользовательские параметры приложений из существующей службы профилей Microsoft Ajax. Функция веб-параметров служб клиентских приложений интегрируется с функцией параметров приложений в .NET Framework 2.0. Для извлечения веб-параметров сначала нужно создать класс Settings (Properties.Settings.Default в C# и My.Settings в Visual Basic) для проекта с помощью вкладки Параметры в конструкторе проектов Visual Studio. На вкладке Параметры с помощью кнопки Загрузить веб-параметры можно извлечь веб-параметры и добавить их в созданный класс Settings. Можно использовать веб-параметры, настроенные для всех проверенных пользователей или для всех анонимных пользователей.
Дополнительные сведения см. в разделе Руководство: доступ к параметрам пользователей с помощью служб клиентских приложений. Дополнительные сведения о параметрах приложений см. в разделе Общие сведения о параметрах приложений. Сведения о применении вашего собственного класса параметров вместо создания такого класса в Visual Studio см. в разделе Практическое руководство. Создание параметров приложения. Сведения о настройке службы профилей Microsoft Ajax см. в разделе Использование сведений о профиле с Microsoft 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
Использование проверки подлинности с помощью форм с Microsoft Ajax
Использование сведений о ролях с Microsoft Ajax
Использование сведений о профиле с Microsoft Ajax
Другие ресурсы
Управление параметрами приложения
Управление авторизацией с помощью ролей
Создание и настройка базы данных служб приложения для SQL Server