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

Web API 开启Session支持

2024-03-31 Windows程序

  Web API中默认是没有开启Session支持的,开启Session支持,需要进行以下操作,以下操作分两种,都是在Global.asax文件中添加代码的。

这时要在Global.asax里添加如下代码,开启Session功能(重写Init方法)   

/// <summary> /// 开启WebAPI中的Session支持 /// </summary> public override void Init() { this.PostAuthenticateRequest += (sender, e) => HttpContext.Current.SetSessionStateBehavior(SessionStateBehavior.Required); base.Init(); }

添加以下代码,判断如果是WebAPI的话,则打开Session功能

/// <summary> /// 判断是否是Web API请求 /// </summary> /// <returns></returns> private bool isWebAPiRequest() {        //根据应用程序根的虚拟路径来判断是否是API程序     return HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath.ToLower().StartsWith(WebApiExecutePath); } /// <summary> /// 如果是API,则打开Session /// </summary> protected void Application_PostAuthorizeRequest() {     if (isWebAPiRequest())     {            HttpContext.Current.SetSessionStateBehavior(System.Web.SessionState.SessionStateBehavior.Required);     } }

同时在WebAPI中测试Session的写入是否正确时,要注意Session的写入和读取要用同样的浏览器或工具,我在测试的过程中,,就犯了个低级错误,Session有写入,但是一直获取不到,就因为我是通过浏览器进行登录测试写Session的,却在PostMan中去获取Session,却一直获取不到。

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

Jm-杰米博客Jamie
草根站长的技术交流乐园!IT不会不要紧快来好好学习吧!
  • 20786文章总数
  • 7494633访问次数
  • 建站天数
  • 友情链接