1
我正在尋找一種方法,以便能夠在customAuthorization期間訪問OnAuthorize方法中的Post請求的參數。如何在WebAPI中的AuthorizeAttribute的onAuthorization方法中訪問Post請求的參數
我看了其他線程,並嘗試了下面的方法,但沒有奏效。
在這種情況下,ActionArguments是空的。
AgentSummaryParams summary = (AgentSummaryParams)actionContext.ActionArguments["AgentSummaryParams"];
string userID = (string)actionContext.ActionArguments["UserID"];
以下面的方式查詢是空字符串。
var queryString = HttpUtility.ParseQueryString(actionContext.Request.RequestUri.Query);
var myQueryParam = queryString["MyValue"];
我無法在請求對象上找到方法GetQueryNameValuePairs()。
var queryParameters = actionContext.Request.GetQueryNameValuePairs().ToDictionary(x => x.Key, x => x.Value);
var some_value = queryParameters.ContainsKey("some_key")
? queryParameters["some_key"] : string.Empty;
有人請讓我知道如何能夠訪問下面的方法中的HttPost方法的請求參數?
public class CustomAuthorizeAttribute : AuthorizeAttribute
{
public override void OnAuthorization(System.Web.Http.Controllers.HttpActionContext actionContext)
{
ModelParamssummary = (ModelParams)actionContext.ActionArguments["ModelParams"];
string userID = (string)actionContext.ActionArguments["UserID"];
}
}
回答更新
var request = actionContext.Request.Content.ReadAsStringAsync().Result;
JObject Obj = JObject.Parse(request);
UseID = (string)Obj["UserID"];
最後兩行讓我剛剛得到確切的鍵值對我期待的。
非常感謝你,它的工作!我已經用您提供的完整解決方案更新了我的答案。 – Blossom