0

我使用 ASP.NET Web API 并通过参考http://stevescodingblog.co.uk/basic-authentication-with-asp-net-webapi/使用身份验证

效果很好。如果请求没有授权标头,则响应 HttpStatusCode 为“未授权”。

但是,当一些 json 数据从客户端发送的某些列不正确时,响应 HttpStatusCode 是“内部服务器错误”,尽管请求没有授权标头。

[BasicAuthentication]
public HttpResponseMessage Create(Customer customer)
{
  // 
}
public class Customer{
  public int id{set;get;}
  public string name{set;get;}    
}

比如发送POST方法到/Create,Content-Type是application/json,Request Body { "id": "abc", "name": "someone" }(id is wrong:not int but string) and don '没有授权标头。响应 HttpStatusCode 是“内部服务器错误”而不是“未经授权”。

也许创建客户实例早于授权。您知道先更改授权吗?

4

1 回答 1

0

如果您已将 BasicAuthenthication 属性创建为 ActionFilterAttribute,则可以尝试将其更改为 AuthorizationFilterAttribute。然后 OnActionExecuting 将更改为 OnAuthorization。我认为其余的大部分内容应该非常相似。

于 2012-08-31T14:59:26.393 回答