[Authorize]
public string GetBlob(Guid id)
{
var blockBlob = _cloudBlobContainer.GetBlockBlobReference(id.ToString());
blockBlob.FetchAttributes();
long length = blockBlob.Properties.Length;
var byteArray = new byte[length];
blockBlob.DownloadToByteArray(byteArray, 0);
var response = new HttpResponseMessage(HttpStatusCode.OK);
var stream = new MemoryStream(byteArray);
response.Content = new StreamContent(stream);
response.Content.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg");
//return response;
return "Test";
}
正在标头中传递正确的JWT令牌。上面的代码工作得很好。但是,如果我取消注释“响应”(已注释掉的行)并将返回类型更改为HttpResponseMessage,它将给我一个HTTP 401未授权错误,即使我可以命中此控制器中的所有其他方法(包括返回类型时的此方法)是字符串)并获得HTTP 200响应。
有什么想法吗?
我试图注释掉这部分内容,它基本上是导致HTTP 401的返回类型。如果我返回HttpResponseMessage,我得到一个401.如果我留下其余的代码并且只返回一个字符串, 有用。我很难过。 :(