DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ASP.NET Web API サービス間のセッション共有ができない

環境/言語:[C#/VB.NET/Oxygene]
分類:[ASP.NET]

お久しぶりです、ぺんたごんです。
久々にドハマりしていますのでお知恵をお借りしたく馳せ参じ参りました。

現在以下のような要件のものを作っています。

・C#、ASP.NET Web API 2を使ったRESTサービス(.NET 4.5.1)
・いくつかのサービスがあり、それらが同じサーバに配置されるとは限らない。
・RESTサービスは本来セッションを使えないが、IRequiresSessionState
 を実装したカスタムHTTPコントローラハンドラを用意して使えるようにした。
・セッション管理はSQL Serverを使用(sessionState mode="SQLServer")
・RESTサービスはWebアプリからも呼ばれるし、iOS/Androidアプリからも
 呼ばれるし、.NET製のデスクトップアプリからも呼ばれる。

このような状態で、サービスAがログオン用とし、
サービスB,C,Dの機能を使う場合はサービスAに対して認証通過済みじゃないと
使えない、という仕組みにしようとしています。

しかし実際試してみると、サービスA内では正常にセッションが働いているのですが
サービスB側でサービスAが設定しているはずのキーを
拾おうとしても取れません(同じサーバ内)

SQLServerを確認すると、AppIdがサービスごとにレコードが発生していましたので
別セッションになってるものと思われます。

少し調べた感じではIISでアプリケーションとして変換した単位でしか
セッションを保持できないような情報が出てきましたが、もし
何か方法が御座いましたら何卒ご教示頂ければと存じます。
時間がないことと、調べたところIISで違うアプリとして構成されたものの
間ではセッションを共通できないことがわかりましたので諦めます。

ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板