Спонсор: Microsoft
Опубликован: 25.06.2010 | Доступ: свободный | Студентов: 1690 / 322 | Оценка: 4.32 / 4.18 | Длительность: 25:57:00
Самостоятельная работа 5:

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

< Лекция 13 || Самостоятельная работа 5: 123 || Лекция 14 >

Упражнение 3 Ассоциирование информационной карты CardSpace с существующей учетной записью ASP.NET Membership

Сценарий

В этом упражнении вы модифицируете существующую Web -страницу, на которой аутентификация пользователей осуществляется с использованием двух механизмов - ASP.NET Membership -провайдера и Windows CardSpace. В результате Ваших изменений у пользователей появится возможность ассоциировать свои учетные записи 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 с учетными записями ASP.NET Membership

Примечание: на этом этапе вы модифицируете страницу авторизации пользователей, добавив элемент управления CardSpace. Это позволит пользователям сайта связывать информационные карты CardSpace с учетными записями ASP.NET Membership .

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

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

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

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

<div class="boldBlue">Associate an information card</div>
<CardSpace:CardButton ID="cardButton" runat="server"
LoginButtonText="Associate Card"
LoginButtonType="Image"
EnableImage="false"
LoginButtonImageUrl="~/images/informationcard.jpg"
LoginResult="Associate"
ProfileUrl="Profile.aspx"
Orientation="Horizontal" BorderPadding="0"
BorderStyle="None" Width="100%" />

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

  • LoginResult . Тип кнопки, которая будет сгенерирована при визуализации сайта. Используйте тип "Associate" для поддержки возможности связывания информационных карт CardSpace с учетными записями ASP.NET Membership
  • SuccessLoginUrl . URL страницы, на которую пользователь будет перенаправлен при успешном прохождении аутентификации.

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

4.Модифицируйте страницу управления профилем пользователя, добавив функцию отображения ассоциированных информационных карт CardSpace

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

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

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

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

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

<CardSpace:CardProfile ID="CardProfile1" runat="server" />

d. Сохраните изменения.

5. Результаты

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

Страница управления профилем. Пользователь может связывать информационные карты со своей учетной записью

Страница управления профилем. Пользователь может связывать информационные карты со своей учетной записью
6. Верификация

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

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

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

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

Web-страница регистрации

Web-страница регистрации

d.Зарегистрируйтесь на сайте без использования информационной карты. Для этого заполните регистрационную форму и нажмите Submit. После завершения процедуры регистрации произойдет автоматическая аутентификация и переход на защищенное соединение

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

e.Нажмите Continue.

f. Чтобы попасть на страницу управления профилем, нажмите на имя пользователя, расположенное на верхней панели

Профиль пользователя, с которым не ассоциировано ни одной информационной карты

Профиль пользователя, с которым не ассоциировано ни одной информационной карты

g.Нажмите на кнопку Information Card, чтобы связать информационную карту с текущей учетной записью пользователя.

Примечание: Если после щелчка на изображение Information Card ничего не произойдет, проверьте, что доступ к сайту осуществляется через SSL (URL начинается с https).

h.Еслиу вас есть информационная карта, которые вы не использовали в предыдущем упражнении, выберите ее и нажмите Send. В противном случае создайте новую информационную карту, следуя инструкции, описанной в упражнении " Использование CardSpace для регистрации пользователей ", и пошлите новую карту. Ваша карта появится в таблице Associated Cards table.

Профиль пользователя с ассоциированной картой CardSpace

Профиль пользователя с ассоциированной картой CardSpace

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

i. Чтобы проверить возможность аутентификации с использованием CardSpace, нажмите sign out на верхней панели для выхода из учетной записи. После этого зайдите на сайт, используя ассоциированную с профилем информационную карту.

j.Чтобы удалить учетную запись из профиля, выберите ее в таблице AssociatedCards на странице профиля пользователя и нажмите Unlink Selected Card(s).

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

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

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

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

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

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

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

Приложение

Задача Инструкции
Детали реализации элемента управления CardButton

Примечание: Элемент управления CardButton при помещении на web-форму ASP.NET будет выполнять следующие функции:

a.Вспомогательные функции на JavaScript. К примеру, возможность определить, поддерживает ли браузер технологию

CardSpace.
Javascript:
function AreCardsSupported(id)
{
var IEVer = -1;
var xmlToken = document.getElementById(id);
if (navigator.appName == 'Microsoft Internet
Explorer')
if (new RegExp('MSIE ([0-9]{1,}[\.0-
9]{0,})').exec(navigator.userAgent) != null)
IEVer = parseFloat( RegExp.$1 );
if( IEVer >= 7 && xmlToken && 
	xmlToken.issuerPolicy != 'undefined' )
return true;
if( IEVer < 0 && navigator.mimeTypes &&
navigator.mimeTypes.length) {
x = navigator.mimeTypes['application/xinformationcard'];
if (x && x.enabledPlugin)
return true;
}
return false;
}

b.Добавит тэг, необходимый для вызова CardSpace API при нажатии на элемент CardButton. Этот тэг расположен внутри тэга <head>.

HTML:
<object type="application/x-informationcard" 
	name="ctl00_MainContentPlaceHolder_cardButton_token"
id="ctl00_MainContentPlaceHolder_cardButton_token">
<param name="tokenType" value="urn:oasis:names:tc:SAML:1.0:assertion" />
<param name="requiredClaims"
value="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier" />
</object>

c.Помимо этого, элемент CardButton может выполнять следующие задачи:

  • Регистрация с использованием информационной карты CardSpace. При регистрации с использованием элемента управления CardButton происходит чтение зашифрованной информации, содержащейся в информационной карте (набор утверждений - claim ) и запись их в таблицу; кроме того, с использованием установленного по умолчанию MembershipProvider будет создана учетная запись и связана с указанной персональной или управляемой информационной картой
  • Ассоциирование информационной карты CardSpace с существующей учетной записью ASP.NET.Элемент CardButton позволяет пользователю ассоциировать свои учетные записи ASP.NET Membership с одной или более персональных или управляемых информационных карт CardSpace, чтобы потом использовать для входа на сайт под этой учетной записью любую из ассоциированных карт
  • Аутентификация с использованием информационной карты CardSpace. При входе на сайт будет сгенерирован объект HttpCookie

Краткое содержание

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

  • При регистрации с использованием элемента управления CardButton происходит чтение зашифрованной информации, содержащейся в информационной карте (набор утверждений - claim ) и запись их в таблицу; кроме того, с использованием установленного по умолчанию MembershipProvider будет создана учетная запись и связана с указанной персональной или управляемой информационной картой
  • Ассоциирование информационной карты CardSpace с существующей учетной записью ASP.NET.Элемент CardButton позволяет пользователю ассоциировать свои учетные записи ASP.NET Membership с одной или более персональных или управляемых информационных карт CardSpace, чтобы потом использовать для входа на сайт под этой учетной записью любую из ассоциированных карт
  • Аутентификация с использованием информационной карты CardSpace. При входе на сайт будет сгенерирован объект HttpCookie

Во втором упражнении вы модифицировали Web -страницу, добавив возможность аутентифицироваться на сайте с использованием информационных карт CardSpace.

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

< Лекция 13 || Самостоятельная работа 5: 123 || Лекция 14 >
Илья Сидоркин
Илья Сидоркин

Добрый день! Подскажите пожалуйста как и когда получить диплом, после сдичи и оплаты?????

Наталья Шульга
Наталья Шульга

Курс "информационная безопасность" .

Можно ли на него записаться на ПЕРЕПОДГОТОВКУ по данному курсу? Выдается ли диплом в бумажном варианте и высылается ли он по почте?