【发布时间】:2015-05-13 18:11:08
【问题描述】:
我有一个 WebApi ModelBinder,用于将 url 中的字符串转换为表示客户端请求的网站段的对象。客户只能访问某些网站段。
我可以处理来自 ModelBinder 的授权吗?现在我正在这样做,它确实返回 401;但是,Api 控制器代码仍然会被执行。
class SegmentModelBinder : IModelBinder
{
public bool BindModel(HttpActionContext actionContext, ModelBindingContext bindingContext)
{
var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
if (value == null || String.IsNullOrEmpty(value.AttemptedValue))
return false;
if (/*doesn't have access*/)
actionContext.Response = new System.Net.Http.HttpResponseMessage(System.Net.HttpStatusCode.Unauthorized);
else
bindingContext.Model = /*set object*/;
return true;
}
}
如何响应 401 并在此时结束请求的执行?
【问题讨论】:
标签: asp.net asp.net-web-api authorization