Мои Xamarin App (PCL) вызывает Web API, как показано в коде ниже:Интеграция Azure AD B2C с Xamarin App
AuthenticationResult ar = await new AuthHelper().AcquireTokenSilentAsync();
using (HttpClient client = new HttpClient())
{
client.BaseAddress = new Uri(Settings.ApiUrl);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", ar.Token);
using (HttpResponseMessage response = await client.GetAsync("api/job"))
{
response.EnsureSuccessStatusCode();
using (HttpContent content = response.Content)
{
string result = await content.ReadAsStringAsync();
return result != null ? JsonConvert.DeserializeObject<ObservableCollection<JobTask>>(result) : null;
}
}
}
My Web API разрешается следующим образом:
[Authorize(Roles = "Admin,BusinessAdmin")]
I я использую Azure AD B2C для получения токена. Я могу получить роли пользователя из графика Azure AD. Я не уверен, как добавить роли, возвращаемые из запроса Graph, в AuthenticationResult.Token
, который передается в веб-API.