zoukankan      html  css  js  c++  java
  • WebApi 中使用 Session

    1. 在 Global.asax.cs 文件中加入session支持

            protected void Application_Start()
            {
                AreaRegistration.RegisterAllAreas();
                GlobalConfiguration.Configure(WebApiConfig.Register);
                FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
                RouteConfig.RegisterRoutes(RouteTable.Routes);
                BundleConfig.RegisterBundles(BundleTable.Bundles);
            }
            public override void Init()
            {
                //注册事件
                this.AuthenticateRequest += WebApiApplication_AuthenticateRequest;
                base.Init();
            }
            void WebApiApplication_AuthenticateRequest(object sender, EventArgs e)
            {
                //启用 webapi 支持session 会话
                HttpContext.Current.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.Required);
            }
    

     2.在 WebApiConfig.cs 中设置 路由session 传递

           public static void Register(HttpConfiguration config)
            {
              
                RouteTable.Routes.MapHttpRoute(
                    name: "DefaultApi",
                    routeTemplate: "api/{controller}/{action}/{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);
                }
            }

    3. 在web,config 中设置跨域配值

        <httpProtocol>
          <customHeaders>
            <add name="Access-Control-Allow-Credentials" value="true" />
    //设置 前端ip地址 <add name="Access-Control-Allow-Origin" value="http://localhost:8080" /> <add name="Access-Control-Allow-Headers" value="Content-Type" /> <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" /> </customHeaders> </httpProtocol>
  • 相关阅读:
    sublime & atom 插件
    正则表达式必知必会读书笔记
    前端自动化工具
    CSS3效果收集
    JS 常用功能收集
    【1】Hover 效果收集
    javascript进阶高手必备知识
    ionic 实现仿苹果手机通讯录搜索功能
    ionic2APP 如何处理返回键问题
    三张图搞懂JavaScript的原型对象与原型链
  • 原文地址:https://www.cnblogs.com/zhuzy/p/9498144.html
Copyright © 2011-2022 走看看