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
追加
protected void Application_PostAuthorizeRequest()
{
System.Web.HttpContext.Current.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.Required);
}
global.asaxに
PostAuthorizeRequestが機能しない場合は、BeginRequestを試してください。