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


Шаг 3. Настройка параметров источника данных

Кит Ньюман и Роберт Мак-Мюррей

На этом этапе создания веб-сайта ASP.NET будет выполняться настройка параметров источника данных, доступных в IIS.

3.1. Строки подключения источника данных

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

В разделе Планирование веб-сайта ASP.NET в IIS вы приняли следующие решения о необходимости добавления строки подключения:

  1. Укажите имя строки подключения.
  2. Укажите сервер, на котором находится база данных.
  3. Укажите имя базы данных.
  4. Введите учетные данные, если не используется интеграция безопасности Windows.

Создание строки подключения к базе данных с помощью пользовательского интерфейса

  1. Откройте диспетчер IIS и перейдите к уровню, которым вы хотите управлять.

  2. В окне Просмотр возможностей дважды щелкните пункт Строки подключения.

  3. На странице Строки подключения нажмите Добавить в области Действия.

  4. В диалоговом окне Добавление строки подключения введите имя строки подключения, например MyConnection, в текстовом поле Имя.

    Примечание

    Имя, введенное в диспетчере IIS, совпадает с именем, которое вы ссылаетесь в коде приложения для получения данных с помощью этой строки подключения.

  5. Выбрав параметр SQL Server, введите имя сервера, на котором размещается база данных, а текстовом поле Сервер, а также введите имя базы данных в текстовом поле База данных.

  6. В разделе Учетные данные выберите один из следующих вариантов:

    • Выберите параметр Использовать встроенную систему безопасности Windows.
    • Выберите команду Указать учетные данные и нажмите Задать. Введите имя пользователя и пароль для учетной записи, которая может подключиться к серверу и базе данных, в текстовых полях Имя пользователя и Пароль. Затем введите тот же пароль в текстовом поле Подтверждение пароля и нажмите кнопку ОК.
  7. Нажмите кнопку ОК.

Создание строки подключения к базе данных в командной строке

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

appcmd set config /commit:MACHINE /section:connectionStrings /+"[connectionString='string', name='string', providerName='string']"

Переменная connectionString='string' — это значение строки подключения, переменная name='string' — это ключ для доступа к значению строки подключения, а переменная providerName='string' — это имя поставщика ADO.NET, используемого для доступа к базовому хранилищу данных. Например чтобы создать строку подключения для приложения, использующего базу данных Northwind, введите в командной строке следующую команду и нажмите клавишу ВВОД.

appcmd set config /commit:MACHINE /section:connectionStrings /+"[connectionString='Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;', name='Northwind', providerName='System.Data.SqlClient ']"

3.2. Поставщики ASP.NET

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

В разделе Планирование веб-сайта ASP.NET в СЛУЖБАх IIS вы приняли следующие решения о добавлении поставщика .NET в IIS:

  • Выберите компонент IIS для поставщика: профили .NET, роли .NET или пользователи .NET.

  • Выберите тип поставщика.

  • Введите имя поставщика.

  • Если выбран компонент "Пользователи .NET", выберите любое из следующих поведений поставщика:

    • Включение сброса паролей
    • Включить получение пароля
    • Требуется вопрос и ответ
    • Требуется уникальный адрес электронной почты
    • Хранить пароль в безопасном формате
  • Введите имя строки подключения к базе данных.

  • Введите имя приложения.

Добавление поставщика с помощью пользовательского интерфейса

  1. Откройте диспетчер IIS и перейдите к уровню, которым вы хотите управлять.

  2. В окне Просмотр возможностей дважды щелкните элемент Поставщики.

  3. На странице Поставщики в разделе Компонент выберите один из следующих компонентов.

    • Роли .NET: для настройки предоставления поставщиком интерфейса между службой управления ролями ASP.NET ("диспетчером ролей") и источниками данных ролей.
    • Пользователи .NET: для настройки предоставления поставщиком интерфейса между службой членства ASP.NET и источниками данных членства.
    • Профиль .NET: для настройки предоставления поставщиком интерфейса между службой профилей ASP.NET и источниками данных профиля.
  4. В области Действия нажмите Добавить.

  5. В диалоговом окне Добавление поставщика выберите тип поставщика в раскрывающемся списке Тип.

  6. В текстовом поле Имя введите имя поставщика.

  7. Если на шаге 3 был выбран компонент Пользователи .NET, то в разделе Свойства профиля под заголовком Поведение установите значение True для одного или нескольких следующих параметров, чтобы включить эти параметры.

    • EnablePasswordReset: указывает, могут ли сбрасываться пароли с помощью метода ResetPassword поставщика. Значение по умолчанию — False.

    • EnablePasswordRetrieval: указывает, могут ли пароли извлекаться с помощью метода GetPassword поставщика. Значение по умолчанию — False.

      Важно!

      Некоторые поставщики, например поставщик Active Directory, не поддерживают извлечение паролей. Для таких поставщиков атрибут enablePasswordRetrieval всегда имеет значение False, и его нельзя изменить в конфигурации.

    • RequiresQuestionAndAnswer: указывает, предоставляется ли ответ-пароль, когда программа вызывает методы GetPassword и ResetPassword поставщика. Значение по умолчанию — False.

    • RequiresUniqueEmail: указывает, должен ли каждый зарегистрированный пользователь иметь уникальный адрес электронной почты. Значение по умолчанию — False.

    • StorePasswordInSecureFormat: указывает, должны ли пароли хэшироваться. Значение по умолчанию — False.

  8. Под заголовком Данные введите имя строки подключения, используемой для подключения к базе данных, в текстовом поле ConnectionStringName. (Примечание. Это та же строка подключения, которая была настроена в компоненте Строки подключения . Дополнительные сведения о настройке строк подключения см. в разделе Настройка строк подключения в IIS 7. Если windowsTokenRoleProvider был выбран на шаге 5 этой процедуры, имя строки подключения является необязательным.)

  9. При необходимости в разделе Свойства профиля под заголовком Общие можно указать виртуальный путь приложения в текстовом поле ApplicationName. Если значение в поле ApplicationName не указано, то для API членства по умолчанию устанавливается значение HttpContext.Current.Request.ApplicationPath. Этот путь можно определить только во время выполнения.

  10. Кроме того, в разделе Свойства профиля под заголовком Общие можно ввести описание поставщика в текстовом поле Описание.

  11. Нажмите кнопку ОК.

Добавление поставщика из командной строки

Для добавления поставщика ролей .NET используется следующий синтаксис.

appcmd set config /commit:MACHINE /section:roleManager /+"providers.[name='string', type='string', connectionStringName='string', applicationName='string']"

Переменная name='string' — это имя поставщика. Переменная type='string' является типом поставщика. Переменная connectionStringName='string' — это имя строки подключения, используемой для подключения к базе данных. Переменная applicationName='string' является необязательной и является виртуальным путем приложения. Например, чтобы настроить приложение ASP.NET для использования SqlRoleProvider класса для хранения и извлечения сведений о роли, введите в командной строке следующую команду и нажмите клавишу ВВОД:

appcmd set config /commit:MACHINE /section:roleManager /+"providers.[name='SqlProvider', type='System.Web.Security.SqlRoleProvider', connectionStringName='SqlServices', applicationName='SampleApplication']"

Для добавления поставщика пользователей .NET используется следующий синтаксис.

appcmd set config /commit:MACHINE /section:membership /+"providers.[name='string', type='string', connectionStringName='string', applicationName='string', enablePasswordReset='true|false', enablePasswordRetrieval='true|false', requiresQuestionAndAnswer='true|false', requiresUniqueEmail='true|false', storePasswordInSecureFormat='true|false']"

Этот синтаксис состоит из следующих элементов:

  • Переменная name='string' — это имя поставщика.
  • Переменная type='string' является типом поставщика.
  • Переменная connectionStringName='string' — это имя строки подключения, используемой для подключения к базе данных.
  • Переменная applicationName='string' является необязательной и является виртуальным путем приложения.
  • Переменная enablePasswordReset=true включает сброс пароля с помощью метода ResetPassword поставщика. Значение по умолчанию — false.
  • Переменная enablePasswordRetrieval=true позволяет получить пароль с помощью метода GetPassword поставщика. Значение по умолчанию — false.
  • Переменная requiresQuestionAndAnswer=true требует, чтобы ответ на пароль был указан, когда программа вызывает методы GetPassword и ResetPassword поставщика. Значение по умолчанию — false.
  • Переменная requiresUniqueEmail=true требует, чтобы у каждого зарегистрированного пользователя был уникальный адрес электронной почты. Значение по умолчанию — false.
  • Переменная storePasswordInSecureFormat=true требует, чтобы все пароли были хэшированы. Значение по умолчанию — false.

Например, чтобы настроить приложение ASP.NET для использования SqlMembershipProvider класса для хранения и извлечения сведений о пользователе, введите в командной строке следующую команду и нажмите клавишу ВВОД:

appcmd set config /commit:MACHINE /section:membership /+"providers.[name='SqlProvider', type='System.Web.Security.SqlMembershipProvider', connectionStringName='SqlServices', applicationName='/', enablePasswordRetrieval='False', enablePasswordReset='True', requiresQuestionAndAnswer='True']"

Для добавления поставщика профилей .NET используется следующий синтаксис.

appcmd set config /commit:MACHINE /section:profile /+"providers.[name='string', type='string', connectionStringName='string', applicationName='string']"

Переменная name='string' — это имя поставщика. Переменная type='string' является типом поставщика. Переменная connectionStringName='string' — это имя строки подключения, используемой для подключения к базе данных. Переменная applicationName='string' является необязательной и является виртуальным путем приложения. Например, чтобы настроить приложение ASP.NET для использования SqlProfileProvider класса для хранения и получения сведений о профиле, введите в командной строке следующую команду и нажмите клавишу ВВОД:

appcmd set config /commit:MACHINE /section:profile /+"providers.[name='SqlProvider', type='System.Web.Profile.SqlProfileProvider', connectionStringName='SqlServices', applicationName='SampleApplication']"

3.3. Профили .NET

В этом разделе описывается добавление свойства профиля и группы профилей.

В разделе Планирование веб-сайта ASP.NET в IIS вы приняли следующие решения о свойствах профиля и группах в IIS:

  • Для каждого свойства профиля укажите имя свойства, тип данных (например, строка или логическое значение), значение по умолчанию, параметр сериализации (строковый, XML, двоичный или определяемый поставщиком), является ли свойство доступным только для чтения, или же оно доступно для анонимных пользователей.
  • Для каждой группы профиля укажите имя группы.

Добавление свойства профиля .NET с помощью пользовательского интерфейса

  1. Откройте диспетчер IIS и перейдите к уровню, которым вы хотите управлять.

  2. В окне Просмотр возможностей дважды щелкните пункт Профиль .NET.

  3. В области Действия нажмите Добавить свойство, чтобы добавить свойство профиля .NET; или чтобы добавить свойство профиля .NET в группу, выберите группу, в которую требуется добавить свойство профиля .NET, и нажмите Добавить свойство в группу.

  4. В диалоговом окне добавления свойства профиля .NET введите имя свойства профиля .NET в текстовом поле Имя.

  5. В разделе Тип данных выберите один из следующих типов данных.

    • System.Boolean: свойство профиля .NET может иметь значения True или False.
    • System.Char: свойство профиля .NET может содержать символы Unicode.
    • System.DateTime: настройка свойства профиля .NET для хранения дат и времени со значениями в диапазоне от 12:00:00 полуночи, 1 января 0001 года Анно Домини (Н.Д.) или Общей эры (C.E.) до 23:59:59 31 декабря 9999 г. н.э. (C.E.)
    • System.Decimal: свойство профиля .NET может содержать десятичные числа в диапазоне от -79 228 162 514 264 337 593 543 950 335 до 79 228 162 514 264 337 593 543 950 335. Тип значения Decimal подходит для финансовых расчетов, когда требуется много значащих цифр в целой и дробной части, и отсутствуют ошибки округления.
    • System.Double: настройка свойства профиля .NET для хранения 64-разрядного числа двойной точности со значениями в диапазоне от отрицательного 1,79769313486232e308 до положительного 1,79769313486232e308, а также положительного или отрицательного нуля, PositiveInfinity, NegativeInfinity и Not-a-Number (NaN). Дополнительные сведения о типе значения Double см. в разделе Двойная структура.
    • System.Int32: свойство профиля .NET может содержать целое число со знаком в диапазоне от -2 147 483 648 до 2 147 483 64.
    • System.Int642: свойство профиля .NET может содержать целое число со знаком в диапазоне от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 808.
    • System.Single: настройка свойства профиля .NET для хранения одноточного 32-разрядного числа со значениями в диапазоне от отрицательных 3,402823e38 до положительных 3,402823e38, а также положительного или отрицательного нуля, PositiveInfinity, NegativeInfinity и Not-a-Number (NaN). Дополнительные сведения о типе single value см. в разделе Single Structure.
    • System.String: настройка свойства профиля .NET в качестве последовательной коллекции структур Char , представляющей строку текста. Это значение по умолчанию.
  6. В текстовом поле Значение по умолчанию введите значение, с которым свойство будет инициализировано.

  7. В разделе Режим сериализации выберите один из следующих модулей форматирования сериализации.

    • Строка: выберите этот параметр, если свойство параметров сериализуется как обычный текст. Это значение по умолчанию.
    • XML: выберите этот параметр, чтобы сериализовать только открытые свойства и поля. XML-сериализация не сохраняет точность типа. Этот параметр полезен, когда требуется предоставить или использовать данные без ограничения приложения, использующего эти данные. Поскольку XML является открытым стандартом, этот параметр представляет собой хороший выбор для совместного использования данных в Интернете.
    • Двоичный: выберите этот параметр, чтобы сохранить точность типов. Двоичная сериализация полезна, когда требуется сохранять состояние объекта между разными вызовами приложения. Например, можно обеспечить совместный доступ к объекту для разных приложений, сериализовав его в буфер обмена. Можно выполнять сериализацию объекта в поток, на диск, в память, по сети и т.д.
    • Конкретный поставщик. Выберите этот параметр, если поставщик параметров неявно осведомлен о свойстве или его типе и может выбрать соответствующий механизм сериализации. Этот параметр часто используется для настраиваемой сериализации.
  8. Установите флажок Только чтение, чтобы свойство профиля .NET нельзя было изменить.

  9. Установите флажок Обеспечение доступности для анонимных пользователей, чтобы свойство профиля .NET было доступно не прошедшим проверку подлинности пользователям.

  10. Нажмите кнопку ОК.

Добавление свойства профиля .NET из командной строки

Для добавления профиля .NET используется следующий синтаксис.

appcmd set config /commit:MACHINE /section:profile /+"properties.[name='string', type='string', defaultValue='string', serializeAs='String|Xml|Binary|ProviderSpecific', readOnly='true|false', allowAnonymous='true|false']"

Переменная name='string' — это имя свойства профиля. Переменная type='string' — это тип данных. Переменная defaultValue='string' — это значение, с помощью которого инициализируется свойство профиля. Переменная serializeAs='String|Xml|Binary|ProviderSpecific' задает модуль форматирования сериализации. Переменная readOnly=true настраивает свойство профиля .NET таким образом, чтобы его нельзя было изменить. Значение по умолчанию — false. Переменная allowAnonymous=true делает свойство профиля .NET доступным для пользователей без проверки подлинности. Значение по умолчанию — false. Например чтобы указать свойство профиля, которое содержит коллекцию последних списков поиска, введите в командной строке следующую команду и нажмите клавишу ВВОД:

appcmd set config /commit:MACHINE /section:profile /+"properties. [name='RecentSearchList', type='System.Collections.Specialized.StringCollection', serializeAs='Xml', allowAnonymous='true']"

Добавление группы профилей .NET с помощью пользовательского интерфейса

  1. Откройте диспетчер IIS и перейдите к уровню, которым вы хотите управлять.
  2. В окне Просмотр возможностей дважды щелкните пункт Профиль .NET.
  3. В области Действия щелкните Добавить группу.
  4. В диалоговом окне Добавление группы введите имя группы профилей .NET в текстовом поле Имя и нажмите кнопку ОК.

3.4. Роли .NET

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

Добавление роли .NET с помощью пользовательского интерфейса

  1. Откройте диспетчер IIS и перейдите к уровню, которым вы хотите управлять.
  2. В окне Просмотр возможностей дважды щелкните элемент Роли .NET.
  3. В области Действия нажмите Добавить.
  4. В диалоговом окне Добавление роли .NET введите имя роли в текстовом поле Имя и нажмите кнопку ОК.

3.5. Пользователи .NET

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

В разделе Планирование веб-сайта ASP.NET в IIS вы приняли следующие решения по проектированию для каждого пользователя, которого вы хотите добавить в IIS:

  • Имя пользователя
  • электронная почта;
  • Пароль
  • Вопрос
  • Ответ
  • Роль или роли

Добавление пользователя .NET с помощью пользовательского интерфейса

  1. Откройте диспетчер IIS и перейдите к уровню, которым вы хотите управлять.

  2. В окне Просмотр возможностей дважды щелкните элемент Пользователи .NET.

  3. В области Действия нажмите Добавить.

  4. В диалоговом окне Подробные данные учетных записей .NET введите следующие сведения:

    • Имя пользователя (должно быть уникальным).
    • Электронная почта (должен использовать стандартный формат: name@domain.com).
    • Пароль (должен быть надежным).
    • подтверждение пароля (должно совпадать с паролем);
    • Вопрос (введите произвольный вопрос или выберите вопрос из списка).
    • ответ на вопрос.
  5. Нажмите кнопку Далее, чтобы выбрать роли для этого пользователя. Если параметр Роли .NET не был включен, нажмите кнопку Готово.

  6. В диалоговом окне Роли пользователя .NET можно дополнительно выбрать доступные роли в поле Роли и нажать кнопку Готово.