КонтекстПолучить аутентификацией информацию о пользователях в Azure Api App
У меня есть Azure Api App установлен как "Public (проверка подлинности)" и позволили Facebook идентичность. Приложение My Api защищено, и я могу пройти аутентификацию с помощью FB. В приложении Api я хочу получить аутентифицированную информацию пользователя, такую как логин, токен и адрес электронной почты для сохранения в базе данных.
Проблема
Я не могу найти какую-либо документацию о том, как получить эту информацию. Я последовал за this статьи и попытался
var runtime = Runtime.FromAppSettings(Request);
var user = runtime.CurrentUser;
TokenResult token = user.GetRawTokenAsync("facebook").Result;
var name = (string)token.Claims["name"];
var email = (string)token.Claims["http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"];
Я сделал изменения в файл apiapp.json разрешить аутентификацию facebook "authentication": [{"type": "facebook"}]
но раз на GetRawTokenAsync
при удаленной отладке Api App.
Глядя на другие блоги/статьи/посты, следуя еще один способ, с помощью ссылок на дополнительные узлы «Microsoft.WindowsAzure.Mobile»
var user = (MobileAppUser)this.User;
var facebookCredentials = user.GetIdentityAsync<FacebookCredentials>().Result;
Но это также не работает, как this.user
имеет тип WindowsPrincipal
пользователя, когда удаленная отладка моего приложения Api. И, по-видимому, «Microsoft.Azure.AppService.ApiApps.Service» является единственной ссылкой, которую нужно Azure Api App.
Я что-то упустил? Это похоже на базовый сценарий, чтобы получить аутентифицированного пользователя в веб-службе Api App.
Вы прошли мимо этого? Исходный код выглядит правильно. Вам не нужно ничего в apiapp.json. Не могли бы вы поделиться сигнатурой метода, который содержит код? Является ли это асинхронным или синхронизирующим? –
У этой проблемы все еще нет. Что ты имеешь в виду, мне не нужно ничего в apiapp.json? Даже свойство аутентификации? Вот подпись метода 'public IEnumerable Get()' –