對於概述here原因之前,我需要從他們每個請求的查詢字符串之前或FORMDATA審查一組值(這樣我就可以執行一些驗證)。密鑰每次都一樣,並且應該出現在每個請求中,但是它們將位於GET請求的查詢字符串中,以及用於POST和其他數據的查詢字符串中的ASP.NET Web API - 讀取查詢字符串/ FORMDATA每個請求
由於這是用於身份驗證的目的,因此需要運行請求前;目前我正在使用MessageHandler。
我可以計算出是否應該基於方法讀取querystring或formdata,何時它是GET,我可以使用Request.GetQueryNameValuePairs()讀取查詢字符串OK;然而問題是當它是一個POST時讀取formdata。
我可以使用Request.Content.ReadAsFormDataAsync()獲取formdata,但是formdata只能被讀取一次,並且當我在這裏讀取它時,它不再可用於請求(即,我的控制器動作獲取空模型)
什麼是最合適的方式一致和非侵入從請求讀取查詢字符串和/或FORMDATA它得到請求邏輯之前?
並稱作品: - 。 ' \t結果= request.Content.ReadAsFormDataAsync()結果; \t Stream requestStream = request.Content.ReadAsStreamAsync()。Result; \t requestStream.Position = 0; ' 您對緩衝區政策評論...確實認爲,從應用的角度來看意味着它不會工作 如果在其上運行代碼的服務器具有策略設置爲流傳? – Aleks 2013-02-24 02:40:04
是的..這是正確的...你可以嘗試一下,用本博客文章中提到的Streamed策略代替:http://blogs.msdn.com/b/kiranchalla/archive/2012/09/04/receiving-請求文件或數據功能於流傳輸模式-AT-A-web的API-service.aspx – 2013-02-24 04:51:04