Как получить имя пользователя и адрес электронной почты текущего пользователя для входа в систему аутентификации C# Azure B2C без Graph API?

Как получить текущее имя пользователя для входа, а также их адрес электронной почты? Поставщиком удостоверений для учетной записи является имя пользователя, а не адрес электронной почты. Имя пользователя не возвращается в качестве утверждений ни в одной из политик, таких как вход в систему, регистрация и т. д. Пользовательский атрибут, такой как «SpouseName», может быть возвращен в качестве требования для входа, к которому я могу получить доступ с помощью ((ClaimsIdentity)User.Identity).FindFirst("extension_SpouseName").Value Это приложение MVC.


person P. Nabin    schedule 10.01.2017    source источник
comment
Вы проверили с помощью B2C Graph API, доступен ли адрес электронной почты в профиле пользователя?   -  person Erik Oppedijk    schedule 13.01.2017
comment
Спасибо @ErikOppedijk. Я могу сделать это через B2C Graph API, но в данном случае я стараюсь избегать Graph API.   -  person P. Nabin    schedule 13.01.2017
comment
И вы уверены, что заявление об адресе электронной почты не указано, когда вы указываете это в своей политике входа? Вы проверили JWT.io, чтобы узнать, что содержится в претензии?   -  person Erik Oppedijk    schedule 15.01.2017
comment
@ErikOppedijk Спасибо. Это было моей ошибкой, я выбрал адреса электронной почты в претензиях, поэтому он не возвращал адрес электронной почты. Теперь я могу получить адрес электронной почты с кодом ((ClaimsIdentity)User.Identity).FindFirst("emails").Value Но мне все еще нужно получить текущее имя пользователя в контроллере.   -  person P. Nabin    schedule 17.01.2017
comment
Вы смотрели в JWT для этого? используйте jwt.io, чтобы увидеть, что именно внутри   -  person Erik Oppedijk    schedule 18.01.2017
comment
@ErikOppedijk Да, я сделал. В качестве утверждений он включает следующие образцы атрибутов: { exp: 1323423423, nbf: 1323423423, ver: "1.0", iss: "https://login.microsoftonline.com/guid/version/", sub: "sub guid value", aud: "aud guid value", nonce: "defaultNonce", iat: 1323423423, auth_time: 1323423423, oid: "oid guid value", name: "hello", extension_test: "1323423423", emails: [ "[email protected]" ], tfp: "B2C_1_signin" }   -  person P. Nabin    schedule 18.01.2017
comment
Я удивлен, почему нет возможности выбрать unique_name и upn в качестве утверждений в атрибутах пользователя и утверждениях приложений в политике входа.   -  person P. Nabin    schedule 18.01.2017
comment
Что ж, имя участника-пользователя в B2C довольно странное: имя пользователя/адрес электронной почты#[email protected]   -  person Erik Oppedijk    schedule 20.01.2017
comment
@ErikOppedijk да, имя участника-пользователя довольно странное, но я не могу получить имя участника-пользователя в качестве утверждений при входе или регистрации. Вы знаете, как его получить?   -  person P. Nabin    schedule 21.01.2017
comment
К вашему сведению: на сегодняшний день, если вы используете вариант входа в систему с именем пользователя, то а) имя пользователя недоступно для передачи в заявках, но его можно получить через Graph, и б) адрес электронной почты доступен в заявках, но не может быть получен через Graph. [Возможно, вы сможете сделать больше, если выберете настраиваемые политики «я верю, все еще в предварительном просмотре».]   -  person mwardm    schedule 08.03.2018


Ответы (1)


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

person Karthikeyan VK    schedule 16.05.2017