web-dev-qa-db-ja.com

Web API 2セッション

Web API 2でセッションデータを取得できません。Cookieがフィドラーで送信されていることを確認しました。

Web API 2のベストプラクティスはステートレスであることを知っていますが、プロジェクトの要件により、現在はステートフルである必要があります。

私はこのリンクを試しました。 WebAPI 2属性ルーティング有効セッション状態

var session = SessionStateUtility.GetHttpSessionStateFromContext(HttpContext.Current)

上記の解決策では、その関数でnull例外が発生します。

また、ルートからrequesthandlerを変更して、古いWeb APIでの方法と同じように複製を試みましたが、Web API 2では使用できません。

現在、mvc5でいくつかのセッション変数を設定しています。これは機能し、セッションは残りますが、web api 2でセッションを使用しようとすると、以下はnullになります。

HttpContext.Current.Session
17
kevindstanley

追加

protected void Application_PostAuthorizeRequest() 
{
    System.Web.HttpContext.Current.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.Required);
}

global.asaxに

53
Dejo

PostAuthorizeRequestが機能しない場合は、BeginRequestを試してください。

1
deepakjg