C# 如何创建WebAPI2自定义属性并将其返回给客户端?
我想从客户机创建带有参数的WebAPI2自定义属性,并将数据返回给客户机,因为有问题 例如,来自客户端的数据:C# 如何创建WebAPI2自定义属性并将其返回给客户端?,c#,asp.net-mvc,asp.net-web-api2,C#,Asp.net Mvc,Asp.net Web Api2,我想从客户机创建带有参数的WebAPI2自定义属性,并将数据返回给客户机,因为有问题 例如,来自客户端的数据: { id : 1, _token : 221 } 例如,在服务器上: //SomeController Action [CustomActionFilter] public String Foo(int id) { return id; } public class CustomActionFilter : ActionFilterAttribute, IActionFilt
{ id : 1, _token : 221 }
例如,在服务器上:
//SomeController Action
[CustomActionFilter]
public String Foo(int id)
{
return id;
}
public class CustomActionFilter : ActionFilterAttribute, IActionFilter
{
void IActionFilter.OnActionExecuting(ActionExecutingContext filterContext)
{
//get _token from client httprequest parameter
//return to client if _token != 221
//next proccess if _token == 221
// in real case, will cek token in db and compare it
}
}
请帮助如何在CustomActionFilter
中获取\u令牌
,如果\u令牌
!=221
此外,如果在整个过程中没有问题,请执行下一个过程?您正在错误地执行许多操作。首先,ActionFilterAttribute本身已经实现了IActionFilter,因此无需在自定义属性中重新实现此接口。其次,令牌不会传递给Foo函数,因此基本上需要更改Foo函数的形式参数。但是,要想让您了解如何做到这一点,请查看以下内容:
public class CustomActionFilter : ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
var id = actionContext.ActionArguments["id"];
}
}
最后,要返回一个错误,可以在OnActionExecuting方法中执行以下操作:
var response = actionContext.Request.CreateErrorResponse(HttpStatusCode.Forbidden, "my reasonable error message");
actionContext.Response = response;