当前位置:首页 > Windows程序 > 正文

MVC4 WebApi开发中如果想支持Session请做好如下几个方面的问题

2021-03-25 Windows程序

1、在WebApiConfig中建立建立HttpControllerHandler和HttpControllerRouteHandler 并覆写它

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); } }

Routes.MapHttpRoute要修改为下面的格式:

public static void Register(HttpConfiguration config) { RouteTable.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } ).RouteHandler = new SessionControllerRouteHandler(); }

2、在MVC的WebApi中默认是没有开启Session会话支持的。需要在Global中重写Init方法来指定会话需要支持的类型

public override void Init() { PostAuthenticateRequest += MvcApplication_PostAuthenticateRequest; base.Init(); } void MvcApplication_PostAuthenticateRequest(object sender, EventArgs e) { HttpContext.Current.SetSessionStateBehavior(SessionStateBehavior.Required); }

MVC4 WebApi开发中如果想支持Session请做好如下几个方面的问题

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/67239.html