Экспорт (0) Печать
Развернуть все

Образец кода: настраиваемая страница входа ASP.NET MVC 3

Опубликовано: Май 2011 г.

Обновлено: Ноябрь 2014 г.

Назначение: Azure

В этом примере демонстрируется создание настраиваемой страницы входа или обнаружения домашней области в MVC3-приложении ASP.NET, использующем службу Microsoft Azure Active Directory Access Control (также называется Access Control Service или ACS). Код примера расположен в папке MVC3CustomSignInPage (C#\Websites\MVC3CustomSignInPage) пакета Примеры кода для контроля доступа в Microsoft Azure Active Directoryhttp://go.microsoft.com/fwlink/p/?LinkId=213167.

Для запуска этого примера потребуется следующее.

  1. Учетная запись на портале Azure (http://go.microsoft.com/fwlink/?LinkId=130560) и Пространство имен Access Control.

  2. Visual Studio 2010 (любая версия).

  3. ASP .NET MVC3 (http://www.asp.net/mvc/mvc3)

  4. Пакет SDK Windows Identity Foundation.

Дополнительные сведения см. в разделе Предварительные требования к ACS (http://go.microsoft.com/fwlink/?LinkId=221065).

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

  1. Перейдите на http://go.microsoft.com/fwlink/p/?LinkID=275081 (https://manage.WindowsAzure.com), выполните вход и щелкните Active Directory. (Совет по устранению неполадок. "Active Directory" item is missing or not availablehttp://go.microsoft.com/fwlink/?LinkId=320739 (Элемент "Active Directory" отсутствует или недоступен))

  2. Чтобы создать пространство имен Access Control, щелкните Создать, Службы приложений, Управление доступом, а затем выберите Быстрое создание. (Или щелкните Пространства имен Access Control перед тем, как щелкнуть Создать.)

  3. Для выполнения управления пространством имен Access Control выберите пространство имен и щелкните Управление. (Или щелкните Пространства имен Access Control, выберите пространство имен, а затем щелкните Управление.)

    Это действие открывает портал управления службы контроля доступа.

  4. Чтобы установить отношения с поставщиками удостоверений, которые будут использовать для входа посетители вашего веб-сайта, щелкните ссылку Поставщики удостоверений и добавьте нужные поставщики удостоверений, например Google, Yahoo! и Facebook. Сведения о том, как получить обязательные для Facebook ключи, см. в разделе Инструкция по настройке поставщика удостоверений Facebook (http://go.microsoft.com/fwlink/?LinkId=221151). Затем щелкните ссылку Начальная в меню навигации слева на странице, чтобы вернуться на главную страницу.

  5. Чтобы зарегистрировать свое приложение в Служба управления доступом, щелкните ссылку Приложения проверяющей стороны на портале управления ACS, выберите команду Добавить, а затем введите в форме следующие сведения:

    • В поле Имя введите ASPNET MVC3 Custom.

    • В поле Область введите http://localhost:64000/.

    • В поле URL-адрес возврата введите http://localhost:64000/Account/SignIn

    • В поле Формат токенов выберите SAML 2.0.

    • В разделе Поставщики удостоверений выберите Facebook, Google, Windows Live ID и Yahoo!.

    • В поле Подпись токена выберите Использовать сертификат пространства имен службы (стандартный).

  6. Нажмите кнопку Сохранить и перейдите на главную страницу.

  7. После настройки приложения проверяющей стороны можно создать правила, определяющие утверждения, которые Служба управления доступом будет выдавать приложению. В этом примере мы просто передадим все утверждения, выданные поставщиками удостоверений. Чтобы создать соответствующее правило, выберите на главной странице раздел Группы правил, а затем щелкните пункт Группа правил по умолчанию для ASPNET MVC3 Custom.

  8. В нижней части страницы щелкните ссылку Создать. Убедитесь, что выбраны Facebook, Yahoo и , и щелкните кнопку Создать.

  9. Настроив Служба управления доступом, откройте Visual Studio.

В состав примера решения для Visual Studio входит программа командной строки ConfigureSample, использующая службу управления Служба управления доступом и общие вспомогательные средства, определенные в библиотеке классов Common. Это приложение можно использовать для настройки пространства имен службы Пространство имен Access Control, используемого с данным примером.

  1. Добавьте в библиотеку классов Common сведения о своем Пространство имен Access Control. Откройте файл SamplesConfiguration.cs и введите следующие сведения:

    • ServiceNamespace — это пространство имен, используемое с Служба управления доступом.

    • ManagementServiceIdentityName — это имя учетной записи службы управления.

    • ManagementServiceIdentityKey — это пароль учетной записи службы управления.

    • AcsHostUrl — это имя узла Служба управления доступом.

  2. В проекте ConfigureSample откройте файл Program.cs и введите следующее:

    1. applicationId — это идентификатор вашего приложения на Facebook.

    2. applicationSecret — это секретный код приложения на Facebook.

    Сведения о том, как получить эти данные, см. в разделе Инструкция по настройке поставщика удостоверений Facebook (http://go.microsoft.com/fwlink/?LinkId=221151).

  3. Запустите приложение ConfigureSample в службе Visual Studio, которая настроит Служба управления доступом для запуска этого примера.

  1. Откройте пример из Websites\MVC3CustomSignInPage\MVC3CustomSignInPage.sln в Visual Studio.

  2. Чтобы добавить Служба управления доступом в качестве ссылки на службу маркеров безопасности, щелкните пункт MVCCustomSignInPage правой кнопкой мыши и выберите в контекстном меню команду Добавить ссылку на службу маркеров безопасности.

  3. В диалоговом окне введите корень веб-приложения в поле Универсальный код ресурса приложения и нажмите кнопку Далее. Значение для этого примера — http://localhost:64000/.

    noteПримечание
    Косая черта в конце важна, поскольку она соответствует значениям, введенным в Служба управления доступом для проверяющей стороны. Мастер отобразит предупреждение, что сайт не использует SSL. Примите предупреждение, щелкнув кнопку Да, но помните, что рабочий веб-сайт должен практически всегда использовать SSL для таких типов сценариев.

  4. В следующем окне щелкните переключатель Использовать существующую службу токенов безопасности и введите универсальный код ресурса метаданных WS-Federation, опубликованный Пространство имен Access Control. Такой универсальный код ресурса можно найти на портале в разделе Интеграция приложений. Если Пространство имен Access Control является mvc3samples, универсальный код ресурса — https:// mvc3samples.accesscontrol.windows.net/FederationMetadata/2007-06/FederationMetadata.xml. После того как вы введете значение, нажмите кнопку Далее.

  5. Поскольку ваш веб-сайт не требует зашифрованных токенов, нажмите кнопку Далее в оставшихся диалоговых окнах, а затем — Готово.

  6. После этого для приложения будет настроено использование Служба управления доступом в рамках общей системы защиты ресурсов ASP.NET. Эту защиту следует отключить, чтобы иметь возможность использовать настраиваемую страницу входа с более детализированными фильтрами проверки подлинности MVC3. В файле web.config в разделе configuration удалите следующий параметр:

    <location path="FederationMetadata">
       <system.web>
         <authorization>
           <allow users="*" />
         </authorization>
       </system.web>
    </location>
    
    
  7. В разделе system.web удалите следующий параметр:

    <authorization>
         <deny users="?" />
       </authorization>
    
    

    После удаления этих параметров платформа ASP.NET не будет проверять подлинность и выполнять авторизацию от лица нашего приложения.

  8. Нажмите клавишу F5 в Visual Studio, чтобы запустить приложение. В браузере откроется главная страница приложения.

  9. Щелкните ссылку Sign In (Вход) в правом верхнем углу и выберите поставщик удостоверений в появившемся списке. После проверки подлинности вы вернетесь на начальную страницу и в правом верхнем углу будут отображены ваши пользовательские сведения (обратите внимание, что не указывает имя пользователя).

  10. Щелкните ссылку Log Off (Выход), чтобы выйти. При этом будут удалены файлы cookie сеанса, и вы вернетесь на главную страницу.

  11. Щелкните ссылку Directory (Каталог). Поскольку вы больше не считаетесь пользователем, прошедшим проверку подлинности, вам будет предложено выбрать поставщик удостоверений для доступа к странице Directory.

Это обусловлено тем, что страница Directory (Index в DirectoryController) защищена атрибутом RequireAuthenticationAttribute. Выбрав поставщик удостоверений и пройдя проверку подлинности, вы снова попадете на страницу Directory.

Добавления сообщества

ДОБАВИТЬ
Показ:
© 2014 Microsoft