Аутентификация на сайте с помощью Live ID и Windows Live Tools
В предыдущем посте я рассказывал о том, как внедрить Live ID аутентификацию у себя на сайте с помощью Live Identity SDK. Сегодня поговорим о том, как внедрить Live ID с помощью Windows Live Tools for Microsoft Visual Studio.
Первое, что нужно сделать, это скачать входят:
ASP.NET Server Controls:
- Contacts
- IDLoginStatu
- IDLoginView
- Map
- MessengerChat
- SilverlightStreamingMediaPlayer
Visual Studio Project Template:
- ASP.NET Windows Live Web Site
- Windows Live Web Application
- Windows Live Web Role (template for Windows Azure Cloud Projects)
Изменения в November 2008 CTP:
- All the controls are now compatible with trust policy of Windows Azure
- New templates - Windows Live Web Application and Windows Live Web Role. Windows Live Web Role works for creating web sites web role in a Windows Azure Cloud Project.
- SilverlightStreamingMediaPlayer Control upgraded to Silverlight 2.0 Tools.
Требования к использованию Windows Live Tools:
This CTP release only targets English (United States).
Operating System
- Microsoft Windows XP SP 2
- Microsoft Windows Vista
Development Tools
- Microsoft Visual Studio 2008
- Microsoft Visual Web Developer 2008
- Silverlight Tools for VS 2008
Нам понадобятся контролы IDLoginStatus и IDLoginView.
Предварительная работа
У нас есть веб-приложение, в котором реализовано стандартная аутентификация пользователя (страницы CreateUser.aspx, login.aspx и база данных ASPNETDB.MDF в папке App_Data). Сценарий типичный: пользователь должен залогиниться, если аккаунта у него нет - он может его зарегистрировать. После чего информация об аккаунте будет добавлена в локальную базу данных.
Страница Default.aspx имеет следующий код:
Welcome
|
You are not logged in. Please log in.
You are now logged in
You can now access your private data!
который отображает имя и статус пользователя, а также LoginView с двумя шаблонами - один для анонимных пользователей, другой - для прошедших аутентификацию.
Интеграция с Live ID
Добавим следующий код на страницу Default.aspx:
PromptOnAssociation="True">
This is anonymous template
Associate your user name for this Website with your Windows Live ID?
This template is for ASP.NET logged in users
This template is for Windows Live ID signed in users
This template is for users logged in both Windows Live ID and ASP.NET membership
Контрол IDLoginStatus по своей функциональности очень похож на "родителя" LoginStatus, но заточен под Live службы.
Контрол IDLoginView рассмотрим подробнее:
Шаблоны IDLoginView
AnonymousTemplate |
Шаблон, который отображается для неавторизированных пользователей. |
LoggedInTemplate |
Шаблон, который отображается, если пользователь выполнил вход с помощью ASP.NET профайла. |
LoggedInIDTemplate |
Шаблон, который отображается, если пользователь выполнил вход с помощью Windows Live ID. |
LoggedInAllTemplate |
Шаблон, который отображается, если пользователь выполнил вход с помощью ASP.NET профайла и Windows Live ID. |
AssociateTemplate |
Шаблон, который отображается для пользователей, которые не ассоциировали свой локальный ASP.NET профайл с Windows Live ID. |
Свойства IDLoginView
Свойство |
Описание |
ApplicationIDConfigKey |
Обязательное Название ключа |
ApplicationSecretConfigKey |
Обязательное Название ключа |
AutomaticallyAssociateAuthentication |
Логическое Если true, то контрол запросит ассоциировать Windows Live ID и ASP.NET профайл. Значение по умолчанию - true. |
AutomaticallyConvertAuthentication |
Логическое
Используется для единого входа. Если true, то контрол IDLoginView попытается при входе преобразовать Windows Live ID аутентификацию в ASP.NET аутентификацию, установив FormsAuthentication.SetAuthCookie. Значение по умолчанию - true. |
PromptOnAssociation |
Логическое Если true, то IDLoginView отобразит AssociateTemplate и попросит подтвердить процесс ассоциации профайлов. Если false, IDLoginView сделает это автоматически. |
Таким образом, мы получаем Application ID и Application Secret (как это сделать, написано в предыдущем посте), устанавливаем свойства AutomaticallyAssociateAuthentication="True" и PromptOnAssociation="True", задаем шаблоны.
Запускаем приложение и плучаем максимум удовольствия при минимуме затрат!
P.S. В аттаче смотрите пример веб-приложения.
Компании из статьи
Microsoft Украина | Украинское подразделение компании Microsoft. |