使用Web API中未经授权的调用示例,它将根据此提供响应。
有没有办法更改默认属性名称"消息"另一个名字,如" Reason" /" Description"对于不成功的API响应?
是否可以添加新的属性,例如"状态"?
答案 0 :(得分:0)
是的只是使用如果您想从服务器更改Josn响应返回的结构,您可以使用asp.net mvc app中的以下代码创建新响应。
// here you can use your own properties which then can be send to client .
return Json(new { Status= false ,Description = response.Message });
如果你有控制器方法,那么你应该返回JsonResult
如果您正在寻找通用解决方案,请查看本文可能会对您有所帮助。
答案 1 :(得分:0)
可以使用自定义AuthorizeAttribute完成。
public class CustomAuthorizeAttribute : AuthorizeAttribute
{
public CustomAuthorizeAttribute ()
{
}
public override void OnAuthorization(HttpActionContext actionContext)
{
try
{
if (Authorize(actionContext))
{
return;
}
HandleUnauthorizedRequest(actionContext);
}
catch (Exception)
{
//create custom response
actionContext.Response = actionContext.Request.CreateResponse(
HttpStatusCode.OK,
customresponse
);
return;
}
}
protected override void HandleUnauthorizedRequest(HttpActionContext actionContext)
{
//create custom unauthorized response
actionContext.Response = actionContext.Request.CreateResponse(
HttpStatusCode.OK,
customunauthorizedresponse
);
return;
}
private bool Authorize(HttpActionContext actionContext)
{
//authorization logics
}
}
在您的api控制器方法中,您可以使用[CustomAuthorizeAttribute]
[Authorize]
内容