WCF REST stater kitを使用して、xml over HTTPサービスを構築しています。このImの一環として、RequestInterceptorを使用して認証を行います。 RequestInterceptorの内部では、System.ServiceModel.Channels.RequestContextオブジェクトにアクセスできます。このオブジェクトから、リクエストURL、クエリ文字列、その他の有用な情報を取得できます。私が解決できないことは、リクエストのHttpContextにアクセスする方法です。私はrequestInterceptor内でアクセスしたいが、私はそれらに到達するのに苦労しているHttpContextに格納されているいくつかのものがあります。 Visual Studio内でクイックウォッチを使用すると、requestContextのプライベートメンバーの中に埋め込まれていることがわかります。誰かが、おそらくRequestContextオブジェクトのリフレクションを使ってHttpContextにアクセスする方法を私に見せてもらえますか?WCF RequestInterceptor内のHttpContextにアクセス
6
A
答えて
9
互換性を有効にする限り、ASP.NETでホストされているWCFサービス内のASP.NETのHttpContextにアクセスできます。これは、2つのステップで行われます。
- あなたは以下を設定することで、互換性を可能にすることを確認し、あなたのサービスクラスにAspNetCompatibilityRequirementsAttributeを適用し、必要な
にRequirementsModeプロパティを設定します。
<system.serviceModel> <serviceHostingEnvironment aspNetCompatibilityEnabled=”true” /> </system.serviceModel>
これを実行したら、いつでも現在のHttpContextインスタンスにthe static Current propertyを使ってアクセスできます。たとえば、次のようにASP.NETランタイムとの統合を有効にすると、要求ごとにいくつかの追加のオーバーヘッドが発生しないので、あなたがそれを必要としない場合は、あなたがそれを可能にし、ちょうど使用しないことによって、いくつかのパフォーマンスを節約できること
foreach(HttpCookie cookie in HttpContext.Current.Request.Cookies)
{
/* ... */
}
注意代わりにSystem.ServiceModel.Webランタイム。 HttpRequestResponseMessagePropertyクラスとHttpResponseMessagePropertyクラスを使用して、必要な情報をすべて入手できます。
件名の詳細については、this section of MSDN titled WCF and ASP.NETを参照してください。
関連する問題
- 1. WCF RequestInterceptor ProcessRequestメソッド内のHttpContextにアクセス
- 2. WCFのHttpContext
- 3. app.UseStatusCodePagesでHttpContextにアクセスする
- 4. ASP.NET MVCのValidationAttribute内でHttpContextにアクセスできますか?
- 5. asmxサービスのSilverlightページのHttpContextにアクセス
- 6. retrofit2:RequestInterceptorを追加
- 7. Feign RequestInterceptorを使用してアクセスできないセキュリティコンテキスト
- 8. コード内の任意の場所からHttpContext、HttpServletRequest、HttpServletResponseにアクセスする
- 9. T4テンプレートの処理中にHttpContextにアクセスする
- 10. ASP.NET MVC:コントローラのHttpContextにアクセスするのは良いですか?
- 11. ILoggerから現在のHttpContextにアクセスします
- 12. VM内のIISでWCFサービスにアクセスできない(Windows 2003)
- 13. 共有関数スレッドセーフでhttpcontextにアクセスしていますか?
- 14. サービス層はHttpContextにアクセスする必要がありますか?
- 15. HttpContext Cookie
- 16. のHttpContextとMVC
- 17. はのHttpContext
- 18. System.Web.UI.PageのHttpContext?
- 19. スレッド間のHTTPContext
- 20. のHttpContextヌルコンストラクタ
- 21. モッキングのHttpContext(セッション)
- 22. ASP.NET MVCのHttpContext
- 23. WCF:サービス内からWindowsフォームにアクセスする
- 24. WCFのデータメンバー値にアクセスするには?
- 25. WCFのXMLプレフィックスへのアクセス
- 26. OpenRastaモッキングのHttpContextは
- 27. リクエストごとにWindsor内でHttpContextを取得する方法
- 28. asp.net MVCアプリケーションの仮想ディレクトリ内のWCFサービスにアクセスするには?
- 29. HttpContextとTelemetryInitializer
- 30. ASP.Net Control.OnIntとHttpContext
私はすでにあなたが上記のすべての事柄を整えています。私は通常のOperationContractメソッドの内部でHttpContextにアクセスできますが、requestInterceptor(http://weblogs.asp.net/gsusx/archive/2008/11/26/extending-restful-services-with-a-custom-request)の内部にあります。 -interceptor.aspx?CommentPosted = true#commentmessage) –