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

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

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

Включать и настраивать службы можно на странице Службы в конструкторе проектов. Изменения на странице Службы обновляют значения в файле проекта App.config. Открыть конструктор проектов можно с помощью команды Свойства в меню Проект. Дополнительные сведения о странице Службы см. в разделе Страница "Службы" в конструкторе проектов. Дополнительные сведения о конструкторе проектов см. в разделе Знакомство с конструктором проектов.

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

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

  1. В обозревателе решений выберите узел проекта, затем в меню Проект выберите Свойства.

    Появится конструктор проектов.

  2. Выберите вкладку Службы. Будет открыта страница Службы, как показано на следующем рисунке.

    Вкладка служб в менеджере проекта

  3. На странице Службы выберите Включить клиентские службы приложений.

  4. Выберите Использовать проверку подлинности в формах если планируется создать собственные элементы управления или окно входа, или выберите Использовать проверку подлинности Windows, чтобы использовать учетные данные, предоставляемые операционной системой. Дополнительные сведения см. в разделе Общие сведения о службах клиентских приложений.

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

    Если выбрать Использовать проверку подлинности Windows, службы приложений будут автоматически использовать базу данных SQL Server Compact Edition, версия 3.5. Это указано в окне Дополнительные параметры служб, как описано в следующем разделе. Если выбрать Использовать проверку подлинности в формах, то параметр Использовать пользовательскую строку подключения не будет автоматически отключен. Это может привести к ошибкам, если база данных SQL Server Compact 3.5 уже создана для проверки подлинности Windows. Чтобы избежать этих ошибок, снимите флажок Использовать пользовательскую строку подключения в окне Дополнительные параметры служб.

  5. Если выбрать Использовать проверку подлинности в формах, в поле Расположение службы проверки подлинности укажите URL-адрес узла службы, не указывая имя файла. Конструктор автоматически добавит к адресу стандартное имя файла (Authentication_JSON_AppService.axd) при записи значения в файл конфигурации.

  6. При необходимости, если выбран параметр Использовать проверку подлинности в формах, можно указать значение в поле Поставщик учетных данных. Поставщик учетных данных должен реализовать интерфейс IClientFormsAuthenticationCredentialsProvider. Используя поставщик учетных данных, можно отделить интерфейс входа от остального кода приложения. Это позволяет создать единое окно входа, которое можно использовать в разных приложениях. Дополнительные сведения см. в разделе Практическое руководство. Реализация входа и выхода пользователя из системы с помощью служб клиентских приложений.

    Если указывать поставщика учетных данных, требуется ввести имя типа сборки. Дополнительные сведения см. в разделах Type.AssemblyQualifiedName и Имена сборок. В простейшем виде имя типа сборки выглядит примерно так:

    MyNamespace.MyLoginClass, MyAssembly
    
  7. В полях Расположение службы ролей и Расположение службы веб-параметров укажите расположение каждой службы, не указывая имя файла. Конструктор автоматически добавит к адресу стандартные имена файлов (Role_JSON_AppService.axd и Profile_JSON_AppService.axd) при записи значения в файл конфигурации.

  8. Не необходимости щелкните Дополнительно для изменения дополнительных параметров, таких как параметры локального кэширования. Дополнительные сведения см. в следующей процедуре.

Расширенные параметры

Следующие процедуры описывают настройку клиентских служб приложений для менее распространенных сценариев. Например, эти настройки можно использовать для приложений, развернутых на общедоступных компьютерах, или для использования в качестве локального кэша данных зашифрованной базы данных SQL Server Compact Edition, версия 3.5.

Для настройки расширенных параметров служб приложений

  1. На странице Службы в конструкторе проектов щелкните Дополнительно.

    Будет открыто окно Дополнительные параметры служб, как показано на следующем рисунке. Дополнительные сведения см. в разделе Диалоговое окно "Дополнительные параметры служб".

    Диалоговое окно “Дополнительные параметры служб”

  2. Установите или снимите флажок Сохранить хэш пароля в локальной системе для входа в автономном режиме. Если установить флажок, в локальной системе сохранится зашифрованный пароль пользователя. Это удобно при реализации автономного режима работы приложения. При выборе этого параметра можно выполнять проверку подлинности, даже когда свойство IsOffline имеет значение true. Дополнительные сведения об автономном режиме см. в разделе Практическое руководство. Автономная работа со службами клиентских приложений.

  3. Установите или снимите флажок Требовать повторного входа пользователей при истечении "cookie" на сервере. Файл "cookie" настраивается в удаленной службе и указывает, в течение какого времени действует учетная запись пользователя. Дополнительные сведения о настройке файла "cookie" см. timeout в разделе Элемент forms для элемента credentials для элемента authentication (схема параметров ASP.NET).

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

    Если снять этот флажок, то при попытке доступа к удаленным ролям или службам веб-параметров после истечения файла "cookie" будет автоматически выполнена проверка пользователя.

  4. Укажите значение параметра Срок действия кэша службы ролей. Установите небольшой срок действия для часто обновляемых ролей и более длительный срок для редко обновляемых ролей. При реализации автономного режима установите длительный срок, чтобы данные ролей не истекли, пока приложение находится в автономном режиме.

    Поставщик ролей получает кэшированные значения ролей или службы ролей при вызове метода IsInRole. Для программного сброса кэша и принудительного доступа к удаленной службе требуется вызвать метод ResetCache.

  5. Установите или снимите флажок Использовать пользовательскую строку подключения. Дополнительные сведения см. в следующей процедуре.

Для настройки служб приложений для использования базы данных локального кэша

  1. На странице Службы в конструкторе проектов щелкните Дополнительно.

    Откроется диалоговое окно Дополнительные параметры служб.

  2. Установите флажок Использовать пользовательскую строку подключения.

    В текстовом поле отобразится значение по умолчанию Data Source = |SQL/CE|.

  3. Для создания и использования базы данных SQL Server Compact Edition, версия 3.5 сохраните строку подключения по умолчанию. В Visual Studio будет создан файл базы данных, этот файл будет помещен в папку, указанную в свойстве Application.UserAppDataPath.

  4. Для создания и использования зашифрованной базы данных SQL Server Compact 3.5 добавьте значения password и encrypt database в строку подключения, как показано в следующем примере.

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

    Установите надежный пароль. Нельзя сменить пароль после создания базы данных.

    Data Source = |SQL/CE|;password=<password>;encrypt database=true
    
  5. Чтобы использовать вашу собственную базу данных SQL Server, укажите собственную строку подключения. Сведения о форматах строки подключения см. в документации SQL Server. Эта база данных не создается автоматически. Строка подключения должна ссылаться на существующую базу данных, которую можно создать с помощью следующих инструкций SQL.

    CREATE TABLE ApplicationProperties (PropertyName nvarchar(256),
        PropertyValue nvarchar(256))
    CREATE TABLE UserProperties (PropertyName nvarchar(256),
        PropertyValue nvarchar(256))
    CREATE TABLE Roles (UserName nvarchar(256), 
        RoleName nvarchar(256))
    CREATE TABLE Settings (PropertyName nvarchar(256), 
        PropertyStoredAs nvarchar(1), PropertyValue nvarchar(2048))
    

Использование пользовательских поставщиков

По умолчанию службы приложений используют поставщиков в пространстве имен System.Web.ClientServices.Providers. При настройке приложения с помощью страницы Службы в конструкторе проектов, ссылки на этих поставщиков добавляются в файл App.config. Эти поставщики по умолчанию получают доступ к соответствующим поставщикам на сервере. Веб-службы часто настраивается для получения данных пользователей из базы данных с помощью таких поставщиков как SqlMembershipProvider и SqlRoleProvider.

Если нужно использовать других поставщиков, обычно следует изменить поставщиков на стороне сервера, чтобы изменения действовали для всех клиентских приложений, получающих доступ к серверу. Впрочем, есть возможность использовать других поставщиков и на стороне клиента. В файле App.config можно указать поставщиков проверки подлинности и поставщиков ролей, как показано ниже. Сведения о создании пользовательских поставщиков проверки подлинности и поставщиков ролей см. в разделах Реализация поставщика членства и Реализация поставщика ролей. Также можно использовать пользовательского поставщика параметров, изменив в проекте класс Settings (Properties.Settings.Default в C# и My.Settings в Visual Basic). Дополнительные сведения см. в разделе Архитектура параметров приложения.

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

  1. Для использования пользовательских поставщиков сначала нужно заполнить все прочие параметры на странице Службы.

  2. Закройте конструктор проектов. Это необходимо, поскольку страница Службы будет автоматически обновлять файл App.config, даже если вы не меняете никакие параметры. Если вручную изменить файл App.config и затем вернуться на страницу Службы, все изменения будут сброшены.

  3. Дважды щелкните App.config в обозревателе решений.

    Файл конфигурации приложения откроется в редакторе.

  4. Найдите элемент <providers> в <membership> или элемент <roleManager>. Это дочерние элементы элемента <system.web>. Элемент <membership> используется для указания поставщиков проверки подлинности, а элемент <roleManager> — для указания поставщиков ролей.

  5. Добавьте элемент <add> как дочерний элемента <providers>. Необходимо указать атрибуты name и type, как показано в примере ниже. Значение атрибута type должно представлять собой имя типа сборки. Дополнительные сведения см. в разделах Type.AssemblyQualifiedName и Имена сборок.

    <add name="MyCustomRoleProvider" type="MyNamespace.MyRoleProvider, MyAssembly" />
    
  6. Измените атрибут defaultProvider элемента <membership> или <roleManager>, чтобы указать значение имени элемента <add>, добавленного на предыдущем шаге.

    <roleManager enabled="true" defaultProvider="MyCustomRoleProvider">
    

См. также

Задачи

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

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

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

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

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

Знакомство с конструктором проектов

Реализация поставщика членства

Реализация поставщика ролей

Архитектура параметров приложения

Ссылки

Страница "Службы" в конструкторе проектов

Диалоговое окно "Дополнительные параметры служб"

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

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

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