ASP.NET MVC中跳转后Session丢失

2019年4月15日18:02:41 2 648
摘要

经常遇到因页面跳转后Session丢失的问题,写一个小结,分享一下经验,如果您有更好的建议,欢迎指导一下我这个小菜鸟。

ASP.NET MVC中跳转后Session丢失

起因

之前做项目,登录成功后将用户信息保存到Session后,使用MVC跳转页面方法,Session丢失,无法获取到数据。后来查了很多资料,说是因为那些跳转方法都是重定向,所以造成无法读取到Session,在ASP.NET WebForm中可以使用“isPostback” 解决这个问题,但是MVC中没有找到好的方法,最后,终于在博客园上面看到别人写的一个代码,暂时解决了这个问题。不适用自己封装的Session帮助方法,使用基础代码实现。

代码

  1. System.Web.HttpContext.Current.Session["session_login_userInfo"];

SessionHelper

经常使用的Session帮助类

展开

  1. /// <summary>  
  2. /// Session 操作类
  3. /// </summary>  
  4. using System.Web;
  5. namespace YRDF.Util.Cache
  6. {
  7.     /// <summary>  
  8.     /// Session 操作类  
  9.     /// 1、GetSession(string name)根据session名获取session对象  
  10.     /// 2、SetSession(string name, object val)设置session  
  11.     /// </summary>  
  12.     public class SessionHelper
  13.     {
  14.         /// <summary>  
  15.         /// 根据session名获取session对象  
  16.         /// </summary>  
  17.         /// <param name="name"></param>  
  18.         /// <returns></returns>  
  19.         public static object GetSession(string name)
  20.         {
  21.             return HttpContext.Current.Session[name];
  22.         }
  23.         /// <summary>  
  24.         /// 设置session  
  25.         /// </summary>  
  26.         /// <param name="name">session 名</param>  
  27.         /// <param name="val">session 值</param>  
  28.         public static void SetSession(string name, object val)
  29.         {
  30.             HttpContext.Current.Session.Remove(name);
  31.             HttpContext.Current.Session.Add(name, val);
  32.         }
  33.         /// <summary>  
  34.         /// 清空所有的Session  
  35.         /// </summary>  
  36.         /// <returns></returns>  
  37.         public static void ClearSession()
  38.         {
  39.             HttpContext.Current.Session.Clear();
  40.         }
  41.         /// <summary>  
  42.         /// 删除一个指定的ession  
  43.         /// </summary>  
  44.         /// <param name="name">Session名称</param>  
  45.         /// <returns></returns>  
  46.         public static void RemoveSession(string name)
  47.         {
  48.             HttpContext.Current.Session.Remove(name);
  49.         }
  50.         /// <summary>  
  51.         /// 删除所有的ession  
  52.         /// </summary>  
  53.         /// <returns></returns>  
  54.         public static void RemoveAllSession(string name)
  55.         {
  56.             HttpContext.Current.Session.RemoveAll();
  57.         }
  58.     }
  59. }

如果您有更好的建议,随时欢迎指导我这个小菜鸟。

weinxin
微信公众号
博客微信公众号,欢迎关注。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  1   博主  1

    • avatar 刘少技术博客 1

      全是使用的东西~很有帮助~

        • avatar 萧瑟 博主

          @刘少技术博客 能帮助到别人,也是做博客的乐趣。 :mrgreen: :mrgreen: