Настройка Membership API в IIS 8

51

Консоль управления IIS 8 включает полный набор административных инструментов для конфигурирования ASP.NET Membership API и поставщиков членства. Более того, поскольку Membership API используется в сочетании с аутентификацией с помощью форм ASP.NET, интерфейс Membership API можно также применять с веб-приложениями, построенными не на ASP.NET - например, приложениями классического ASP или PHP.

Конфигурирование поставщиков и пользователей

Первым шагом в использовании Membership API после настройки аутентификации с помощью форм является конфигурирование поставщика членства. Для этой цели консоль управления IIS 8 предоставляет новое средство конфигурирования Providers (Поставщики) в разделе категории .NET. показанное на рисунке ниже:

Конфигурирование поставщиков Membership API в IIS 8

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

Например, средство .NET Users (Пользователи .NET), выбранное в раскрывающемся списке как показано на рисунке выше, отображается на поставщика членства, ответственного за управление пользователями веб-приложения. Чтобы добавить нового поставщика, просто щелкните на ссылке Add (Добавить) в панели задач в правой части консоли управления. Откроется диалоговое окно, которое позволит выбрать тип поставщика, поддерживаемого как исполняющей средой, так и вашим приложением, если есть классы специальных поставщиков, развертываемые вместе с ним.

На рисунке ниже показано диалоговое окно конфигурирования поставщика для приложения:

Добавление нового поставщика к приложению

Это диалоговое окно позволяет сконфигурировать большинство часто используемых свойств, включая свойство applicationName, что влияет на ассоциацию объектов в базе данных членства с выделенным приложением, если база данных разделяется между множеством приложений.

После успешного конфигурирования поставщика для вашего средства (такого как .NET Users) можно приступать к работе с другими административными средствами консоли управления. Например, можно добавлять и удалять пользователей непосредственно внутри консоли управления IIS с помощью средства .NET Users, показанного на рисунке ниже:

Непосредственное управление пользователями внутри IIS 8

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

Использование Membership API с другими приложениями

Как было показано в статье «Настройка аутентификации в IIS 8» аутентификацию с помощью форм можно использовать с любым веб-приложением, сконфигурированным в IIS 8, при запуске IIS в интегрированном режиме ASP.NET.

Это также означает возможность использования Membership API с любым веб-приложением (вроде приложений классического ASP или PHP) и конфигурирования поставщиков членства для пользователей .NET, а также самих пользователей .NET. На рисунке ниже показана страница каталога приложения PHP которую мы создали ранее:

Страница входа ASP.NET, содержащая элемент управления Login, со страницей PHP

Теперь просто сконфигурируйте поставщика членства через консоль управления IIS, как было описано в предыдущем разделе, и в результате Membership API будет использоваться вместе с аутентификацией с помощью форм и страницей PHP. По окончании конфигурирования файл web.config выглядит, как показано ниже:

<configuration>
    <system.web>
        <membership>
            <providers>
                <add name="TestMembershipProvider" type="System.Web.Security.SqlMembershipProvider"
                     applicationName="classic" connectionStringName="LocalSqlServer" 
                     enablePasswordReset="false" enablePasswordRetrieval="false" 
                     passwordFormat="Clear" 
                     requiresQuestionAndAnswer="false" 
                     requiresUniqueEmail="false" />
            </providers>
        </membership>
    </system.web>
    <system.webServer>
        <modules>
          <remove name="FormsAuthentication" />
          <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" 
              preCondition="" />
        </modules>
    </system.webServer>
</configuration>

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

Пройди тесты
Лучший чат для C# программистов