首页 > 专题 > 微信 > 正文

微信公众平台开发教程(八)Session处理问题

2020-04-24 20:45:44
字体:
来源:转载
供稿:网友

在微信窗口,输入的信息有限,我们需要将一些信息分多次请求。

比如:在进行用户绑定时,我们需要输入用户的相关信息,比如:用户名、密码,或者姓名、电话号码,服务端验证通过,即可将系统用户与微信用户绑定。

然后,此微信账户就有一定的功能权限了,可以查积分,消费记录等。服务号:招商银行信用卡,就有很多功能。

微信客户端无法缓存信息,而且输入信息有限,需要进行多次请求,在服务端保存当前会话状态。这就需要Session。

本文以用户认证,绑定账号为例,来说明具体处理。

一、创建通用的Session处理机制。

为了更好的说明原理,便于扩展,我们来自己设计Session。当然,这里也可以使用System.Web.SessionState.HttpSessionState,这是Web常用的Session机制。

1、自定义Session

用于存储会话片段以及相关数据。

class Session  {    /// <summary>    /// 缓存hashtable    /// </summary>    private static Hashtable mDic = new Hashtable();    /// <summary>    /// 添加    /// </summary>    /// <param name="key">key</param>    /// <param name="value">value</param>    public static void Add(string key, object value)    {      mDic[key] = value;    }    /// <summary>    /// 移除    /// </summary>    /// <param name="key">key</param>    public static void Remove(string key)    {      if (Contains(key))      {        mDic.Remove(key);      }    }    /// <summary>    /// 设置值    /// </summary>    /// <param name="key"></param>    /// <param name="value"></param>    public static void Set(string key, object value)    {      mDic[key] = value;    }    /// <summary>    /// 获取值    /// </summary>    /// <param name="key"></param>    /// <returns></returns>    public static object Get(string key)    {      return mDic[key];    }    /// <summary>    /// 是否含有    /// </summary>    /// <param name="key">key</param>    /// <returns>bool</returns>    public static bool Contains(string key)    {      return mDic.ContainsKey(key);    }    /// <summary>    /// 清空所有项    /// </summary>    public static void Clear()    {      mDic.Clear();    }  }

2、操作类型

记录具体的操作类型,标识当前会话的具体操作

/// <summary>  /// 操作类型  /// </summary>  enum Operation  {    /// <summary>    /// 认证    /// </summary>    Auth,    /// <summary>    /// 添加用户    /// </summary>    CreateUser  }

3、操作过程枚举

用于标识当前操作,处于哪一个阶段,不同阶段做不同的处理。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表