美文网首页
Asp.Net Web Api Session支持

Asp.Net Web Api Session支持

作者: 寻找无名的特质 | 来源:发表于2021-09-17 05:38 被阅读0次

    Asp.Net Web Api项目创建完成后,如果在Web Api中访问Session会出现错误,这是因为缺省情况下,没有安装针对Session的支持,Session在Web Api调用时没有初始化。这需要启动设置中进行设置,代码如下:

    using System.Net.Http.Headers;
    using System.Web;
    using System.Web.Http;
    using System.Web.Http.WebHost;
    using System.Web.Routing;
    using System.Web.SessionState;
    
    namespace Plat.Web.Deply
    {
        public static class WebApiConfig
        {
            public static void Register(HttpConfiguration config)
            {
                // Web API 配置和服务
    
                // Web API 路由
                config.MapHttpAttributeRoutes();
    
                config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("application/json"));
    
    
                RouteTable.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{id}",
                    defaults: new { id = RouteParameter.Optional }
                ).RouteHandler = new SessionControllerRouteHandler(); ;
            }
    
            public class SessionRouteHandler : HttpControllerHandler, IRequiresSessionState
            {
                public SessionRouteHandler(RouteData routeData)
                    : base(routeData)
                {
                }
            }
            public class SessionControllerRouteHandler : HttpControllerRouteHandler
            {
                protected override IHttpHandler GetHttpHandler(RequestContext requestContext)
                {
                    return new SessionRouteHandler(requestContext.RouteData);
                }
            }
        }
    }
    
    

    MVC项目也会有同样的问题,也需要进行类似的处理。另外,如果从页面使用Ajax调用Web Api,这种情况可能产生与前端不同的会话,这种情况下,如果将权限信息保存在Session,也会出现访问不到的错误。

    相关文章

      网友评论

          本文标题:Asp.Net Web Api Session支持

          本文链接:https://www.haomeiwen.com/subject/mlrkgltx.html