Web API 2.0 HttpResponseMessage返回类型返回HTTP401

时间:2014-10-28 00:29:17

标签: c# asp.net-web-api owin azure-storage-blobs jwt

    [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.如果我留下其余的代码并且只返回一个字符串, 有用。我很难过。 :(

0 个答案:

没有答案