我希望与Accessing post or get parameters in custom authorization MVC4 Web Api实现相同,但它仅适用于GET请求。
所以我为web api编写了以下动作过滤器:
public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)
{
var request = actionContext.Request;
var headers = request.Headers;
HttpContext ctx = default(HttpContext);
ctx = HttpContext.Current;
if (ctx != null)
{
var apiKey = (string)actionContext.ActionArguments["apiKey"];
}
}
帖子的形式如下:
<form name="form1" method="post" enctype="multipart/form-data" action="@localPostUrl">
<fieldset>
<legend>File Upload Example</legend>
<div>
<label for="caption">Image Caption</label>
<input name="caption" type="text" />
</div>
<div>
<label for="image1">Image File</label>
<input name="image1" type="file" />
</div>
<div>
<input type="text" name="apiKey" id="apiKey" value="b2b54e7b-ca0b-4adf-a369-efe839e55120" />
<input type="submit" value="Submit" />
</div>
</fieldset>
所以我试图将一个图像和一个字符串发布到Web Api,但ActionFilter中的actionContext.ActionArguments在执行POST请求时为空,但在执行GET请求时正在工作。
与我问题上提供的解决方案相比,我注意到该帖子的操作有一个属性FormUri添加到参数中,但我无法在查询字符串中发送ApiKey。
是否有解决方案来获取Post paramteres以便在验证时执行某种形式?