4

SessionID を使用して WCF サービスから Asp.net セッション変数にアクセスすることは可能ですか。

私のサービスはjQueryから呼び出され、jQueryを使用してセッションIDをサービスに解析し、必要な変数を設定することを考えていましたが、これを行う方法が見つかりません。

これが私のjQuery呼び出しです

$.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    url: baseURL,
    data: JSON.stringify(data),
    dataType: "json",
    success: function (data) {

それが可能かどうか、またはセッション関連の変数を設定する別の方法を提案するかどうかを誰かが知っていますか?

4

2 に答える 2

5

ブラウザーからの jQuery 要求には既にセッション Cookie が含まれているため、WCF サービスを ASP.NET 互換モードで実行している場合は、現在の状態に直接アクセスHttpContextできます。つまり、そこからセッション状態にアクセスできます。WCF サービスでこの統合を有効にする方法は次のとおりです。

まず、次の属性をサービス クラスに追加します。

[AspNetCompatibilityRequirements(RequirementsMode=AspNetCompatibilityRequirementsMode.Allowed)]

次に、サービスの .config に次を追加します。

<system.serviceModel>
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/> 
    <!-- whatever else you already have -->
</system.serviceModel>`

これを行うと、次のように current にアクセスしHttpContextてセッション状態を取得できます。

public void MyServiceOperation()
{
    string myStoredValue = HttpContext.Current.Session["MyStoredValue"];

    // whatever
}
于 2012-05-04T15:59:53.273 に答える
2

セッション オブジェクトをデータベース自体に保存して、さまざまな Web アプリまたはプラットフォームでアクセスできるようにすることができます。

于 2012-06-25T19:26:33.403 に答える