Преподаватель
Спонсор: Microsoft
Опубликован: 25.06.2010 | Уровень: специалист | Доступ: свободно
Самостоятельная работа 5:

Изучение принципов использования технологии Windows CardSpace на примере системы DinnerNow

< Лекция 13 || Самостоятельная работа 5: 123 || Лекция 14 >
Аннотация: На примере разработки системы DinnerNow для заказа блюд из различных ресторанов показано, каким образом платформа Microsoft может использоваться для построения комплексного решения, включающего общедоступный Web-сайт, внутреннюю систему для поддержки бизнес-процессов и мобильное приложение. Используются разнообразные технологии, в т.ч. Microsoft Internet Information Services 7, Atlas, Linq, Windows Communication Foundation, Windows Workflow Foundation, Windows Presentation Foundation, Windows PowerShell, и the .NET Compact Framework. Основной упор делается на применение в описанном контексте технологии Windows Cardspace

Виртуальная среда для выполнения лабораторной работы доступны по ссылке: https://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032346308&EventCategory=3&culture=en-US&CountryCode=US .

Цель занятия

Научиться интегрировать Windows CardSpace в сайт на ASP.NET s

Сценарий

На примере разработки системы DinnerNow для заказа блюд из различных ресторанов показано, каким образом платформа Microsoft может использоваться для построения комплексного решения, включающего общедоступный Web -сайт, внутреннюю систему для поддержки бизнес-процессов и мобильное приложение. Используются разнообразные технологии, в т.ч. Microsoft Internet Information Services 7, Atlas, Linq, Windows Communication Foundation, Windows Workflow Foundation, Windows Presentation Foundation, Windows PowerShell, и the .NET Compact Framework. Основной упор делается на применение в описанном контексте технологии Windows Cardspace

Имена компьютеров, используемых в рамках этой лабораторной работы


Пароль к учетной записи администратора ( Administrator) в этой лабораторной работе: Pass@word1

Краткие итоги

В результате выполнения лабораторной работы студенты систематизировали знания о мерах по обеспечению информационной безопасности, а именно:

  • Определили требования к системе безопасности конкретной организации учетом ее области деятельности, структуры и ИТ инфраструктуры
  • Приобрели навыки практического использования технологии Windows Cardspace для обеспечения аутентификации пользователей в приложениях на платформе Microsoft

Упражнение 1.Использование CardSpace для регистрации пользователей

Сценарий

В этом упражнении вы модифицируете существующую Web -страницу, на которой регистрация пользователей осуществляется с использованием механизма ASP.NET Membership -провайдера. В результате Ваших изменений у пользователей появится возможность регистрироваться на сайте с использованием информационных карт CardSpace.

Исходные материалы

  • База данных ASP.NET Membership.Включает таблицы, необходимые для ASP.NET SqlMembershipProvider, а также 2 таблицы для хранения информации CardSpace.
  • Файл решения Visual Studio.Включает Web -сайт, состоящий Web -страниц для регистрации, аутентификации и авторизации пользователей и навигации по защищенному пространству сайта. Для управления членством на сайте используется ASP.NET SqlMembershipProvider.
  • Кастомные элементы управления CardSpace.Инкапсулируют логику для взаимодействия с CardSpace API. Эти элементы будут использованы для добавления на сайт возможности использования CardSpace.
Задача Инструкции
Следующие задания выполняются на компьютере.

1. Откройте файл решения Visual Studio

Примечание: Зайдите на машину SOA17 под учетной записью Administrator , используя пароль Pass@word1.

a.Откройте Microsoft Visual Studio 2005: Start | All Programs | Microsoft Visual Studio 2005

b.Откройте файл решения Restaurants.CardSpace.sln в каталоге C:\DinnerNow\Labs\Cardspace\Ex01-RegisterWithCardSpace\begin.

Решение содержит Web -сайт, на котором регистрация пользователей осуществляется с использованием механизма ASP.NET Membership -провайдера.

2. Запустите Web -сайт под IIS 7

Примечание: На этом этапе вы настроите конфигурацию сайта с тем, чтобы он запускался под IIS 7. Необходимость этой конфигурации обоснована тем, встроенный в Visual Studio Web сервер не поддерживает протокол Secure Socket Layer (SSL), необходимый дляиспользования технологии CardSpace.

a.В окне Solution Explorer правой кнопкой мыши щелкните по узлу Web site и выберите пункт меню Property Pages.

b.На вкладке Start Options выберите опцию Use custom server и введите в текстовое поле base URL строчку " https://www.fabrikam.com/DinnerNowLabs/RegisterWithCardSpace.begin".

c.Чтобы закрыть окно редактора свойств, нажмите кнопку OK. Когда Вы запустите приложения для отладки нажатием клавиши F5, Visual Studio откроет окно браузера и перейдет по ссылке, указанной Вами в поле base URL

3.Включите элементы управления CardSpace в решение

Примечание : Исходные материалы содержат кастомные элементы управления CardSpace, которые инкапсулируют логику для взаимодействия с CardSpace API. Эти элементы будут использованы для добавления на сайт возможности использования CardSpace. На этом этапе Вы включите эти элементы управления в решение.

a.В окне Solution Explorer правой кнопкой мыши щелкните по папке Source, наведите курсор на пункт контекстного меню Add и выберите Existing Project.

b.В открывшемся диалоговом окне перейдите в каталог C:\DinnerNow\Labs\CardSpace\Assets\CardSpaceControls\ и выберите проект CardSpaceControls.csproj.

c.Чтобы добавить проект, нажмите на кнопку Open. После этого окно Solution Explorer примет следующий вид:

Решение с подключенным проектом кастомных элементов управления CardSpace

Решение с подключенным проектом кастомных элементов управления CardSpace

d.В окне Solution Explorer правой кнопкой мыши щелкните по узлу Web site и выберите пункт меню Add Reference. Перейдите на вкладку Projects, выберите проект CardSpaceControls и нажмите кнопку OK.

4. Зарегистрируйте элементы управления CardSpace

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

a.Откройте файл Web.config.

b.Вставьте следующий XML в секцию

<system.web> :
<pages>
<controls>
<add tagPrefix="CardSpace"
namespace="Microsoft.DPE.Samples.CardSpace.Controls"
assembly="Microsoft.DPE.Samples.CardSpace"/>
</controls>
</pages>
5.Модифицируйте страницу регистрации, добавив поддержку CardSpace

Примечание: на этом этапе вы модифицируете страницу регистрации Register.aspx, добавив элемент управления CardSpace. Как показано на странице, этот элемент управления позволит пользователям сайта использовать для регистрации информационную карту CardSpace.

 Страница регистрации с поддержкой технологии CardSpace

Страница регистрации с поддержкой технологии CardSpace

a.Откройте страницу Register.aspx для редактирования кода разметки.

b.Найдите TO-DO комментарий:

<!-- TODO: Add CardButton control here -->

c. Чтобы добавить кастомный элемент управления CardButton, вставьте в файл после TO-DO комментария следующий код на ASP.NET:

<div class="boldBlue" style="margin-bottom:20px">Register
using your information card</div>
<CardSpace:CardButton id="cardButton" runat="server"
LoginButtonType="Image"
EnableImage="false"
LoginButtonImageUrl="images/informationcard.jpg"
ImageUrl="images/informationcard.jpg"
LoginResult="NewAccount"
ChooseUsernameUrl="~/ChooseUsername.aspx"
Orientation="Horizontal"
BorderPadding="0"
BorderStyle="None" Width="100%" />

Примечание: элемент управления CardButton имеет несколько атрибутов, которыми можно манипулировать для настройки его поведения, в т.ч.:

  1. LoginResult . Тип кнопки, которая будет сгенерирована при визуализации сайта. Возможные значения включают:
    • "Authenticate" (для аутентификации).
    • "New Account" (для регистрации)
    • "Associate" (для ассоциирования с другим сайтом, на котором у пользователя уже заведена информационная карта, которую он хочет использовать для доступа к нашему сайту)
  2. ChooseUsernameUrl . URL страницы, на которую пользователь будет перенаправлен при создании новой учетной записи. Страница, расположенная по указанному адресу, должна предоставлять пользователю возможность ввести имя для заведения учетной записи в ASP.NET Membership. Это необходимо, поскольку элемент управления CardSpace всегда связывает информационную карту пользователя с его учетной записью в ASP.NET Membership.

Примечание: более подробную информацию о коде HTML/JavaScript, который CardButton добавляет в текст WebForm, см. в Приложении.

6.Создайте страницу "Choose User Name"

Примечание: элементы управления CardSpace всегда связывют информационную карту пользователя с его учетной записью в ASP.NET Membership. Для авторизации пользователь должен будет предоставить имя учетной записи ASP.NET Membership, которая будет создана во время регистрации. На этом этапе с использованием элемента управления CardSpace вы создадите страницу "Choose User Name" , которая позволит пользователю выбирать имя для его учетной записи.

a.В окне Solution Explorer правой кнопкой мыши щелкните по узлу Web site и выберите Add New Item. Появится диалоговое окно Add New Item.

b.Из списка шаблонов, предложенных Visual Studio, выберите Web Form и в качестве имени файла введите ChooseUsername.aspx.

c. Установите флаг Select Master Page и нажмите кнопку Add.

d.В диалоговом окне Select a Master Page выберите Site.master и нажмите OK.

e.Чтобы добавить элемент управления ChooseUsername, вставьте следующий код на ASP.NET внутрь MainContentPlaceHolder:

<cardspace:ChooseUsername ProfileUrl="Default.aspx"
runat="server" id="CN1" />

Примечание: Элемент управления ChooseUsername позволяет пользователю задать имя для учетной записи, связываемой с информационной картой. При визуализации он выглядит так, как показано ниже

Кастомный элемент управления ChooseUsername

Кастомный элемент управления ChooseUsername
7. Результаты

a.Выполнив это упражнение, Вы добавите на сайт поддержку регистрации с использованием технологии CardSpace

Страница регистрации с поддержкой CardSpace

Страница регистрации с поддержкой CardSpace
8. Верификация

Примечание: Чтобы убедиться в том, что при добавлении возможности регистрации с использованием CardSpace вы не допустили ошибок, выполните следующие действия:

a.Установите страницу Register.aspx в качестве дефолтной на сайте. Для этого щелкните по ней в окне Solution Explorer правой кнопкой мыши и выберите в контекстном меню Set As Start Page.

b.Выполните сборку решения.

c.Нажмите F5, чтобы запустить приложение под IIS.

d.Нажмите на изображение с подписью Information Card. В появившемся окне выберите опцию " Yes, choose a card to send". Примечание: Если после щелчка на изображение Information Card ничего не произойдет, проверьте, что доступ к сайту осуществляется через SSL (URL начинается с https).

Примечание: Может появиться окно с вводной информацией о технологии Windows CardSpace, после прочтения которой вы перейдете в основное окно. Кроме того, в системе уже могут быть созданы информационные карты. В этом случае вам нужно будет создать новую и придумать для нее уникальное имя.

Identity Selector ("переключатель идентичности")

Identity Selector ("переключатель идентичности")

e.Чтобы создать новую карту, двойным щелчком кликните по кнопке Add a card

Создание карты

Создание карты

f.Выберите опцию Create a Personal card. Появится экран для создания "персональной" (self-issued) карты

g.Задайте имя карты, заполните необходимые поля и нажмите Save. Будет создана новая карта.

Новая карта создана

Новая карта создана

h.Выберите только что созданную карту и нажмите Send. Появится экран с запросом подтверждения намерения отправить карту.

Экран подтверждения

увеличить изображение
Экран подтверждения

i.Чтобы послать карту, нажмите Send.

j. После отправки карты вы будете перенаправлены на страницу " Choose User Name ".

Проверка валидности имени учетной записи

Проверка валидности имени учетной записи

k.В качестве имени пользователя введите BradSutton и нажмите Check Username. Кастомный элемент управления ChooseUsername проверит валидность имени. В случае успешной проверки будет активирована кнопка Change Username.

Имя пользователя является допустимым

Имя пользователя является допустимым

l.Для завершения процесса надмите Change Username. Вы будете перенаправлены на дефолтную страницу сайта.

m.Откройте Windows PowerShell (меню Start | All Programs | Windows PowerShell 1.0 )

n.Чтобы перейти в папку, где расположен файл со скриптом, выполните команду chdir \dinnerNow\Labs\Cardspace\Ex01- RegisterWithCardSpace\PowerShellTests\.

o.Запустите скрипт verify.ps1, передав в качестве 1-го параметра имя пользователя, которое вы задали на шаге k. К примеру, если вы ввели "BradSutton" в качестве имени, для запуска скрипта используйте следующую строку.

.\verify.ps1 BradSutton

Примечание: Если вы не допустили ошибок при выполнении упражнения, скрипт выведен на экран детали карты, связанной с учетной записью пользователя.

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

p.Откройте файл Restaurants.CardSpace.sln , асположенный в папке C:\DinnerNow\Labs\Cardspace\Ex01-RegisterWithCardSpace\end ).

q.В окне Solution Explorer правой кнопкой мыши щелкните по узлу Web site и выберите пункт меню Property Pages.

r.На вкладке Start Options выберите опцию Use custom server и введите в текстовое поле base URL строчку " https://www.fabrikam.com/DinnerNowLabs/RegisterWithCardSpace.begin".

s. Чтобы закрыть окно редактора свойств, нажмите кнопку OK.

t.Выполните сборку решения.

u.Когда Вы запустите приложения для отладки нажатием клавиши F5, Visual Studio откроет окно браузера и перейдет по ссылке, указанной Вами в поле base URL

< Лекция 13 || Самостоятельная работа 5: 123 || Лекция 14 >
Евгений Виноградов
Евгений Виноградов
Экстернат
Илья Сидоркин
Илья Сидоркин
Как получить диплом?
Сергей Мясников
Сергей Мясников
Россия
Владимир Гнинюк
Владимир Гнинюк
Украина, Киев