AZURE ACS - Windows Live ID - Как получить адрес электронной почты и имя аутентифицированного пользователя? - PullRequest
6 голосов
/ 24 октября 2011

Вот сценарий:

Запуск приложения MVC 3 в среде разработки AZURE Аутентификация в ACS AZURE реализована так же, как здесь http://msdn.microsoft.com/en-us/library/hh127794.aspx

Я пытаюсь получить имя пользователя,и по электронной почте, но я не могу найти способ настроить «Правило заявки» таким образом, чтобы я получил текстовое значение, вместо этого я получаю строку, которая кажется зашифрованной.Так можно ли настроить правило так, чтобы оно было в виде открытого текста?Или я могу расшифровать возвращаемое значение?Возможно ли это, или я смотрю здесь не то?

Спасибо

Ответы [ 7 ]

10 голосов
/ 24 октября 2011

IIRC, политика конфиденциальности Windows Live запрещает предоставлять имя пользователя или адрес электронной почты в качестве претензий (в отличие от Gmail или Yahoo!). Таким образом, получить эти претензии от Live невозможно (если только вы не являетесь Microsoft).

Единственное значение, которое вы можете получить, называется идентификатором имени. Он уникален для каждого домена RP (т. Е. Он не является одним значением для LiveID, но отличается в зависимости от домена). Это также преднамеренно, так что вы не можете иметь разные веб-сайты, сотрудничающие для отслеживания пользователя. Как правило, вы получите идентификатор имени (называемый PUID), а затем добавите его в свою базу данных, чтобы вы знали, что видели его раньше. Затем пользователь регистрируется на вашей стороне с именем, адресом электронной почты и т. Д., И вы связываете это с PUID.

С другой стороны, LiveId также поддерживает OAuth2, так что вы можете получить любую необходимую информацию о профиле пользователя от пользователя (с его / ее согласия). Смотрите здесь .

8 голосов
/ 19 октября 2012

Это всего #FAIL со стороны Microsoft.Пользователи, при входе на ваш сайт с помощью Google или других поставщиков, они должны сначала принять.Затем они просто передают основную информацию на сайт, сайт использует ее, и все довольны.

Кстати, вы можете получить ее от пользователя с помощью закулисных кодовых страниц, но она не является бесшовной для пользователя, требует ручного процесса, но, тем не менее, система LiveID не является более безопасной для этого, она просто сломана.

1 голос
/ 20 февраля 2012

Возможно, но для пользовательского sts требуется немного кода:

https://gist.github.com/1867792

Код не создается и зависимости не включены ... но он в основном основан на раннем начальном сайте Thinktecture, портированном на MVC4, с изменениями, показанными выше.

0 голосов
/ 17 октября 2013

Кажется, что путь немного запутан, но, став брокером и используя Live Connect API, вы можете достичь этой функциональности.

Пожалуйста, смотрите: http://code.msdn.microsoft.com/windowsazure/Get-Azure-ACS-work-40d588cc#content

0 голосов
/ 06 августа 2013

Существует несколько методов запроса к серверам Live для получения дополнительной информации об аутентифицированных пользователях (при условии, конечно, что они дали согласие). Вы можете сделать некоторые простые настройки для своего сайта, используя некоторый клиентский javascript для получения информации, как показано в примере здесь: http://msdn.microsoft.com/en-us/library/live/hh826534.aspx.

Также возможно, хотя и немного сложнее, запрашивать серверы Live из кода на стороне сервера. Пример приложения, описанный в http://dominicbetts.github.io/waad-acs-sample/index.html, показывает один из возможных подходов в приложении MVC4.

0 голосов
/ 20 июня 2013

В этом блоге обсуждается создание настраиваемого поставщика Windows STS для Windows и включение его в качестве надежного поставщика удостоверений в SharePoint.

http://blogs.technet.com/b/speschka/archive/2012/03/01/finally-a-useful-way-to-federate-with-windows-live-and-sharepoint-2010-using-oauth-and-saml.aspx

К сожалению, похоже, что команда Azure просто неЯ не понимаю, что люди могут захотеть получить что-то полезное из идентификатора Windows Live.

Вы также можете удалить Windows Live Id в качестве опции для входа, нажав на него в поставщиках Identity, а затем- проверка связи с вашей проверяющей стороной.

(Действительно странно, что вы не можете удалить ее = P)

0 голосов
/ 21 марта 2013

Это возможно с помощью iFrame Trick.

<iframe src="https://login.live.com/login.srf?wa=wsignout1.0" frameborder="0"></iframe>

это не будет перенаправлять вас на страницу MSN

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