Отображение аватара для Core MVC с использованием аутентификации Azure AD (B2C) - PullRequest
0 голосов
/ 23 февраля 2019

У меня есть приложение ASP.NET Core MVC, которое интегрировано с нашей Azure AD.В шаблоне по умолчанию, который создается для нового проекта MVC, он отображает имя вошедшего в систему пользователя, но я также хотел бы показать аватар (изображение, связанное с таким пользователем, как Azure, делает при входе в портал).

Можно ли это сделать?

1 Ответ

0 голосов
/ 25 февраля 2019

Вы можете использовать Microsoft Graph API для получения фотографии текущего пользователя:

GET https://graph.microsoft.com/v1.0/me/photo/$value

Ссылка: https://docs.microsoft.com/en-us/graph/api/profilephoto-get?view=graph-rest-1.0

Чтобы использовать Microsoft Graph API, вам необходимо получить токен доступав вашем приложении MVC, используя MSAL :

private async Task OnAuthorizationCodeReceived(AuthorizationCodeReceivedContext context)
{
    var clientCredential = new ClientCredential(context.Options.ClientSecret);
    var userId = context.Principal.FindFirst(ClaimTypes.NameIdentifier).Value;
    var tokenCache = new SessionTokenCache(context.HttpContext, userId);

    var confidentialClientApplication = new ConfidentialClientApplication(
        context.Options.ClientId,
        context.Options.Authority,
        _options.RedirectUri,
        clientCredential,
        tokenCache.GetInstance(),
        null);

    try
    {
        var authenticationResult = await confidentialClientApplication.AcquireTokenByAuthorizationCodeAsync(context.ProtocolMessage.Code, _options.ApiScopes.Split(' '));
        context.HandleCodeRedemption(authenticationResult.AccessToken, authenticationResult.IdToken);
    }
    catch (Exception ex)
    {
        // TODO: Handle
        throw;
    }
}

, см. пример кода:

https://github.com/chrispadgettlivecom/WebApp-OpenIDConnect-DotNetCore21/tree/master/WebApp-OpenIDConnect-DotNetCore21

Или с использованием MicrosoftГрафическая клиентская библиотека для .NET (SDK)

https://github.com/microsoftgraph/aspnetcore-connect-sample

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