Bri*_*ard 3 c# asp.net-web-api asp.net-web-api2
我正在制作一个web api来使用遗留系统.这个web api应该和旧的一样工作.安全性是发送安全令牌以及每个调用.这意味着我需要在提供数据之前检查令牌.我有这样的方法:
public List<User> Get(string id, string securityToken)
{
//ValidateToken(securityToken);
return userRepository.LoadAll();
}
Run Code Online (Sandbox Code Playgroud)
在我的方法中,我希望validateToken()方法返回"禁止"的httpresponse,如果我不能验证它.我该怎么做呢?
IHttpActionResult:
return StatusCode(HttpStatusCode.Forbidden);
Run Code Online (Sandbox Code Playgroud)
或者:
return Content(HttpStatusCode.Forbidden, "message");
Run Code Online (Sandbox Code Playgroud)
HttpResponseMessage:
return this.Request.CreateErrorResponse(HttpStatusCode.Forbidden, "message");
Run Code Online (Sandbox Code Playgroud)
如果您希望自定义控制器Forbidden()实现类似BadRequest()或任何其他响应,请参阅此示例。
通常,您会ValidateToken在 an 中进行类型调用,ActionFilterAttribute在那个时候返回禁止的类型,早在Get控制器上调用该方法之前。然后,您将该属性应用于控制器或操作方法(或者,如果您需要授权所有调用,则将其注册为全局操作过滤器属性)。
您可以像这样使用HttpResponseMessage:
public HttpResponseMessage Get(string id, string securityToken)
{
var forbidden = true;
if (forbidden)
{
return this.Request.CreateResponse(HttpStatusCode.Forbidden);
}
return Ok(userRepository.LoadAll());
}
Run Code Online (Sandbox Code Playgroud)
使用HttpResponseMessage可以返回包含内容或错误的OK(HTTP 200).
| 归档时间: |
|
| 查看次数: |
8104 次 |
| 最近记录: |