技術的、はい、私は本当にこのような行為に対して助言するだろうが - REST APIは完全にステートレスでなければなりません(クッキーや他のクライアント側の状態がOKです)。
あなたは絶対には、これを行う必要がある場合はそのように、あなたは、HTTPコンテキストをつかむことができます。あなただけのセッションを取得するために、そのSessionプロパティを使用してポイント
var context = Request.Properties["MS_HttpContext"] as HttpContext;
れます。
System.Net.Http
が引き受ける特定の契約が破られていることに注意してください。具体的には、APIコントローラはASP.NETに結合されているため自己ホストできません。これで問題ないのですが、分散セッションを使用するためにすべてを再構築しない限り、APIコントローラがウェブファームから正常に動作しない場合があります。
P.S. IRequiresSessionState
を使用することもできますが、コントローラ自体で使用することはできません。HttpControllerHandler
で使用し、RouteHandler
に設定する必要があります。このアプローチについては、this MSDN threadを参照してください。繰り返しますが、をに対して強く推奨することはできません。これはWeb APIの基本原則に違反していますが、が本当にという理由がある場合はもう少しです再利用可能。
フォーム認証を使用するには、ほとんどの場合asp.netを設定する必要がありますが、それ以外の場合もあります。 –
私はWebフォームを使用しています – Kubi