【发布时间】:2016-09-23 03:01:17
【问题描述】:
对于当前的 WebAPI,我使用 OAuthAuthorizationServerProvider 的自定义实现。
如果登录失败,我需要返回 JSON 响应。此响应是一个简单的ViewModel,包含锁定时间等(如果有)。
但是,我无法发送响应。它要么在 25 字符处被截断(??),要么作为转义的 C# string("\"lockout": 2" 等)发送。
这是我迄今为止尝试过的:
context.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
context.Response.ContentType = "application/json; charset=utf-8";
context.Response.Write(JsonConvert.SerializeObject(authResult));
【问题讨论】:
-
您是否设置了
Response.ContentLength属性? -
是的尝试过,但似乎将其设置回 25
-
我相信 OAuth 提供者只是覆盖了您的响应(在这种情况下,它附加到同一个流,但覆盖了 ContentLength 标头)。看看这个答案,或许能帮你找到解决办法(问题是一样的):stackoverflow.com/a/36755639/3670737