Я пытаюсь создать приложение аутентификации с ASP.NET Core 2.0 и пытаюсь создать некоторые методы REST.Что я хочу сделать, это создать метод GET, который возвращает изображение профиля.Я получил это:
[Produces("application/json")]
public class UserController : Controller
{
private readonly UserManager<ApplicationUser> _userManager;
public UserProfileController(UserManager<ApplicationUser> userManager)
{
_userManager = userManager;
}
[HttpGet]
public async Task<IActionResult> GetPicture(string username)
{
var user = await _userManager.FindByNameAsync(username);
return Ok(user.Picture);
}
}
И это действительно работает.Дело в том, что вызов этого метода возвращает строковое представление base64 моего изображения.Но я хочу получить само изображение.Затем я попытался изменить метод GetPicture
на этот:
[HttpGet]
public async Task<IActionResult> GetPicture(string username)
{
var user = await _userManager.FindByNameAsync(username);
var bytes = Convert.FromBase64String(user.Picture);
Image image;
using (var ms = new MemoryStream(bytes))
{
image = Image.FromStream(ms);
}
return Ok(image);
}
Но он не работает, как я надеялся.Я предположил, что это проблема Content-type, поэтому я попытался изменить [Produces("application/json")
на [Produces("image/jpeg")
или что-то подобное.Но это не работает, так как возвращает мне ошибку 406: Недопустимо .У меня заканчиваются идеи, поэтому я спрашиваю вас, можете ли вы помочь мне с этой проблемой.Заранее спасибо!