微信企业号开发之微信考勤Cookies的使用


Posted in Javascript onSeptember 11, 2015

在上篇文章给大家介绍了微信企业号开发之微信考勤百度地图定位,接下来通过本文学习微信企业号开发之微信考勤Cookies的使用,具体内容如下。

使用微信考勤,每次使用微信企业号开发:微信用户信息和web网页的session的关系这个里边的方法,调用微信的接口,有点慢,微信官方也推荐使用Cookies,但如何使用Cookies,自己却一直没有搞清楚。

原来一直以为在服务端获取客户端的数据有两个方法,一种就是查询字符串放在URL上,一种就是放在form中,post提交,自己以前也使用过但主要是在客户端使用,从来没法把Cookies中的数据直接提交到服务端,即使有也是通过把Cookies中的数据读取出来后放入form中的隐藏字段,然后post到服务端。

显然微信考勤这类其实就是一个URL,在进入URL的过程中,没有什么post数据的过程。只有进入URL之后再通过用户提交,或者ajax提交。总之似乎没法直接把Cookies中的数据直接提交给服务端。似乎陷入了僵局。于是自己再一次研究了Cookies,发现Cookies似乎是主动提交到服务端的,但和post是提交的位置不一样,当然我没有找到相关文档,是测试发现的。只要自己设定了Cookies,每次进入URL都会提交Cookies,自然就可以在服务端读取到Cookies的值了。这时才真正明白记住密码的真正实现原理。并不是把Cookies的值读出来,放入隐藏字段,然后通过ajax提交到服务端,就可以免登陆了。

可以看到Cookies的数据到了服务端,sessionID也是通过Cookies这种方式传到服务端的。

前端js读取,设置Cookies的方法:

function setCookie(name, value) {//两个参数,一个是cookie的名子,一个是值 
 var Days = 30; //此 cookie 将被保存 30 天 
 var exp = new Date(); //new Date("December 31, 9998"); 
 exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000); 
 document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString(); 
} 
function getCookie(name) {//取cookies函数   
 var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)")); 
 if (arr != null) return unescape(arr[2]); return null; 
}

CSharp服务端操作Cookies:

设置Cookies

HttpCookie cookie = new HttpCookie("UserCode", username); 
   cookie.Expires = DateTime.Now.AddDays(10);// (365 * 24 * 3600);   
   this.Response.AppendCookie(cookie); 
   HttpCookie cookieDeviceId = new HttpCookie("DeviceId", rt.DeviceId); 
   cookieDeviceId.Expires = DateTime.Now.AddDays(10);// (365 * 24 * 3600);   
   this.Response.AppendCookie(cookieDeviceId);

读取Cookies:

HttpCookie ttHttpCookie = this.Request.Cookies.Get("UserCode"); 
HttpCookie ttHttpCookieDeviceId = this.Request.Cookies.Get("DeviceId"); 
string code = Request.QueryString["code"]; 
if (ttHttpCookie == null || ttHttpCookieDeviceId == null) 
{ 
 WeiApi(code); 
} 
else { 
 string username = ttHttpCookie.Value; 
 string DeviceId = ttHttpCookieDeviceId.Value; 
 if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(DeviceId)) 
 { 
  WeiApi(code); 
 } 
 else { 
  new AppException("读取Cookies UserCode=" + username + ",DeviceId=" + DeviceId); 
  initSession(username, DeviceId); 
 } 
}

以上内容给大家介绍了微信企业号开发之微信考勤Cookies的使用,希望大家喜欢。

Javascript 相关文章推荐
JavaScript 数组运用实现代码
Apr 13 Javascript
使用闭包对setTimeout进行简单封装避免出错
Jul 10 Javascript
jQuery中html()方法用法实例
Dec 25 Javascript
浅析Bootstrap缩略图组件与警示框组件
Apr 29 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
Oct 30 Javascript
JS实现导出Excel的五种方法详解【附源码下载】
Mar 15 Javascript
解决element UI 自定义传参的问题
Aug 22 Javascript
vue实现添加与删除图书功能
Oct 07 Javascript
react-native滑动吸顶效果的实现过程
Jun 03 Javascript
Echarts实现多条折线可拖拽效果
Dec 19 Javascript
关于JavaScript 中 if包含逗号表达式
Nov 27 Javascript
Vue深入理解插槽slot的使用
Aug 05 Vue.js
微信企业号开发之微信考勤百度地图定位
Sep 11 #Javascript
JavaScript处理解析JSON数据过程详解
Sep 11 #Javascript
在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法
Sep 11 #Javascript
JavaScript实现算术平方根算法-代码超简单
Sep 11 #Javascript
js图片卷帘门导航菜单特效代码分享
Sep 10 #Javascript
jQuery超精致图片轮播幻灯片特效代码分享
Sep 10 #Javascript
手机端转盘抽奖代码分享
Sep 10 #Javascript
You might like
PHP实时显示输出
2008/10/02 PHP
PHP带节点操作的无限分类实现方法详解
2016/11/09 PHP
Laravel框架源码解析之入口文件原理分析
2020/05/14 PHP
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
2007/01/29 Javascript
IE 下Enter提交表单存在重复提交问题的解决方法
2014/05/04 Javascript
轻松学习jQuery插件EasyUI EasyUI创建CRUD应用
2015/11/30 Javascript
jquery实现倒计时效果
2015/12/14 Javascript
Angular 根据 service 的状态更新 directive
2016/04/03 Javascript
使用gulp搭建本地服务器并实现模拟ajax
2017/04/05 Javascript
Bootstrap提示框效果的实例代码
2017/07/12 Javascript
js实现图片上传预览原理分析
2017/07/13 Javascript
js对象属性名驼峰式转下划线的实例代码
2020/09/17 Javascript
微信小程序实现选项卡滑动切换
2020/10/22 Javascript
详解Vue中的自定义指令
2020/12/07 Vue.js
[54:05]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第一场 1月9日
2021/03/11 DOTA
[06:45]DOTA2-DPC中国联赛 正赛 Magma vs LBZS 选手采访
2021/03/11 DOTA
python操作摄像头截图实现远程监控的例子
2014/03/25 Python
Django中ORM表的创建和增删改查方法示例
2017/11/15 Python
Python排序搜索基本算法之希尔排序实例分析
2017/12/09 Python
django加载本地html的方法
2018/05/27 Python
使用python判断你是青少年还是老年人
2018/11/29 Python
解决pycharm运行出错,代码正确结果不显示的问题
2018/11/30 Python
Python 实现子类获取父类的类成员方法
2019/01/11 Python
简单了解python高阶函数map/reduce
2019/06/28 Python
python如何通过twisted搭建socket服务
2020/02/03 Python
python实现梯度下降法
2020/03/24 Python
Python Tkinter实例——模拟掷骰子
2020/10/24 Python
CSS3+DIV实现漂亮的动画彩色标签
2016/06/16 HTML / CSS
英国户外装备商店:Ultimate Outdoors
2019/05/07 全球购物
如何填写个人简历自我评价
2013/12/10 职场文书
养牛场项目建议书
2014/05/13 职场文书
校园环保广播稿(3篇)
2014/09/15 职场文书
2016年领导干部正风肃纪心得体会
2015/10/09 职场文书
详解Laravel框架的依赖注入功能
2021/05/27 PHP
科学家研发出新型速效酶,可在 24 小时内降解塑料制品
2022/04/29 数码科技
MySQL约束(创建表时的各种条件说明)
2022/06/21 MySQL