Неправильно отображается источник изображения ASP.NET Base64. - PullRequest
0 голосов
/ 08 мая 2018

Я получаю строку Base64 из активного каталога Azure с помощью функции Lambda. Это представляет изображение профиля пользователя. Затем я пытаюсь отобразить это на странице ASP.NET. Это не работает

Вот ASP.NET (ссылочный HTML-объект является литералом ASP)

            using (var client = new AmazonLambdaClient(Amazon.RegionEndpoint.APSoutheast2))
            {
                var request = new InvokeRequest
                {
                    FunctionName = ConfigurationManager.AppSettings["lambdaArnPrefix"] + "lambda-wlyw-GetAzureAdUserThumbnail",
                    Payload = "\"" + Context.User.Identity.Name.ToString() + "\"",
                    InvocationType = InvocationType.RequestResponse

                };
                var response = client.Invoke(request);

                string result;
                using (var sr = new StreamReader(response.Payload))
                {
                    result = sr.ReadToEnd();
                }

                dynamic userThumbnail = JsonConvert.DeserializeObject(result);
                photo.Text = "<img src='data:image/jpg;base64," + userThumbnail.base64Image + "' width='100' height='100'/>";

Однако на странице отображается значок разорванного изображения. если я смотрю источник, мне кажется, что все в порядке? Строка base64 декодирует изображение, если я использую онлайн-конвертер:

  <div class="panel-group">
                                            <div class="panel panel-primary">
                                                <div class="panel-heading">James Matson - Excellence<i class="fa fa-certificate pull-right"></i></div>
                                                <img src='data:image/jpg;base64,eyJvZGF0YS5lcnJvciI6eyJjb2RlIjoiUmVxdWVzdF9SZXNvdXJjZU5vdEZvdW5kIiwibWVzc2FnZSI6eyJsYW5nIjoiZW4iLCJ2YWx1ZSI6IlJlc291cmNlICd0aHVtYm5haWxQaG90bycgZG9lcyBub3QgZXhpc3Qgb3Igb25lIG9mIGl0cyBxdWVyaWVkIHJlZmVyZW5jZS1wcm9wZXJ0eSBvYmplY3RzIGFyZSBub3QgcHJlc2VudC4ifX19' width='100' height='100'/>

1 Ответ

0 голосов
/ 08 мая 2018

Разобрался с проблемой - извиняюсь всем. Оказывается, что мои кэшированные учетные данные не были там, что означало, что возвращенная строка Base64 из функции Lambda была на самом деле не изображением, а кодом ошибки из Azure AD, а именно:

{"odata.error":{"code":"Request_ResourceNotFound","message":{"lang":"en","value":"Resource 'thumbnailPhoto' does not exist or one of its queried reference-property objects are not present."}}}

Как только я вошел в систему правильно, изображение заработало - поэтому, если кому-то нужен рабочий пример того, как это достигается, используйте приведенное выше:)

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