【问题标题】:MVC - Access Sessions From Web APIMVC - 从 Web API 访问会话
【发布时间】:2014-08-25 22:07:36
【问题描述】:

使用 MVC

当然,在 Web API 中进行身份验证后,我想将值分配给 session("LoggedIn") True

但我的 Web API 中的会话不断返回 NullReference

有什么解决方法吗?

谢谢。

【问题讨论】:

标签: asp.net-mvc session asp.net-web-api


【解决方案1】:

您需要设置支持 HTTP 请求所需的会话状态行为类型。

您可以在 Global.asax 文件中的 Application_PostAuthorizeRequest() 中进行更改。

using System.Web.Http;
using System.Web;
using System.Web.SessionState;

namespace Sample
{
    public class WebApiApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            WebApiConfig.Register(GlobalConfiguration.Configuration);
        }

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

【讨论】:

    【解决方案2】:

    WebApiConfig.cs

    public static class WebApiConfig
        {
            public static string UrlPrefix         { get { return "api"; } }
            public static string UrlPrefixRelative { get { return "~/api"; } }
    
            public static void Register(HttpConfiguration config)
            {
                config.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: WebApiConfig.UrlPrefix + "/{controller}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                );
            }
        }
    

    Global.asax.cs

    public class MvcApplication : System.Web.HttpApplication
    {
        ...
    
        protected void Application_PostAuthorizeRequest()
        {
            if (IsWebApiRequest())
            {
                HttpContext.Current.SetSessionStateBehavior(SessionStateBehavior.Required);
            }
        }
    
        private bool IsWebApiRequest()
        {
            return HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath.StartsWith(WebApiConfig.UrlPrefixRelative);
        }
    
    }
    

    更多详情Accessing Session Using ASP.NET Web API

    猜你喜欢
    • 2012-03-24
    • 1970-01-01
    • 2014-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    • 2014-01-15
    相关资源
    最近更新 更多