Как получить адрес электронной почты и имя от Azure ACS? - PullRequest
3 голосов
/ 26 сентября 2011

Я использую Azure ACS, и я искал, чтобы получить электронную почту и имя из ответа SAML 2.0 или чего-то еще.

Но я не вижу никаких опций для этого, я перенаправляю пользователя на localhost: 8000 / acc / completetesigninup /

Там у меня есть XML из объекта FormCollection, я вижу адрес электронной почты и имя в XML, но я не уверен, как его получить. Есть ли парсер, который включен в dll Identity для получения этой информации?

Ответы [ 2 ]

4 голосов
/ 26 сентября 2011

Поскольку вы упоминаете о FormCollection, я предполагаю, что вы программируете в Windows с .Net. Тогда проще всего было бы использовать WIF (http://msdn.microsoft.com/en-us/security/aa570351).

Таким образом, вам не нужно анализировать токен, проверять его, устанавливать идентификатор пользователя, а затем создавать файл cookie, представляющий информацию из токена.

WIF, как только вы установите и сконфигурируете его (его SDK поставляется с расширением Visual Studio для этого), вы сделаете это автоматически.

Вы можете посмотреть некоторые образцы, используя WIF с MVC. Один из примеров - ACS с MVC3, который вы можете найти по адресу:

http://msdn.microsoft.com/en-us/library/hh127794.aspx

Как только вы сделаете это в своих контроллерах, вы сможете получить доступ к идентификатору пользователя и получить значения претензий, например ::

((IClaimsPrincipal)HttpContext.User).Identity.Claims.FirstOrDefault(c => c.ClaimType == ClaimTypes.Email)

Обратите внимание, что Windows Live IDP в ACS НЕ будет выдавать адреса электронной почты пользователей в качестве претензий из-за политики конфиденциальности Windows Live.

0 голосов
/ 03 мая 2012

Atacan прав во всем, кроме одной детали: похоже, существует способ получения нужной информации из Windows Live, но он отличается от способа, используемого для учетных записей Google, Facebook и Yahoo. JavaScript API Windows Live включает поддержку для получения информации, такой как имя пользователя ( ссылка ).

Я не пробовал этого, поэтому я не знаю, что еще требуется, но это может быть то, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...