微信企业号开发之微信考勤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 相关文章推荐
myFocus slide3D v1.1.0 使用方法与下载
Jan 12 Javascript
20个非常棒的 jQuery 幻灯片插件和教程分享
Aug 23 Javascript
jquery中dom操作和事件的实例学习 下拉框应用
Dec 01 Javascript
JavaScript实现数组随机排序的方法
Jun 26 Javascript
AngularJS 中的指令实践开发指南(一)
Mar 20 Javascript
解析JavaScript实现DDoS攻击原理与保护措施
Dec 26 Javascript
js时间查询插件使用详解
Apr 07 Javascript
jQuery选择器之子元素过滤选择器
Sep 28 jQuery
Node.js学习之TCP/IP数据通讯(实例讲解)
Oct 11 Javascript
微信小程序实现左右联动的实战记录
Jul 05 Javascript
Javascript迭代、递推、穷举、递归常用算法实例讲解
Feb 01 Javascript
layui table 表格模板按钮的实例代码
Sep 21 Javascript
微信企业号开发之微信考勤百度地图定位
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
linux使用crontab实现PHP执行计划定时任务
2014/05/10 PHP
laravel5 Eloquent 实现事务方式
2019/10/21 PHP
轻轻松松学JS调试(不下载任何工具)
2010/04/14 Javascript
使用js判断控件是否获得焦点
2014/01/03 Javascript
javascript实现瀑布流自适应遇到的问题及解决方案
2015/01/28 Javascript
jquery实现鼠标点击后展开列表内容的导航栏效果
2015/09/14 Javascript
jQuery实现点击按钮文字变成input框点击保存变成文字
2016/05/09 Javascript
javascript之Boolean类型对象
2016/06/07 Javascript
浅谈使用React.setState需要注意的三点
2017/12/18 Javascript
vue toggle做一个点击切换class(实例讲解)
2018/03/13 Javascript
基于vue-cli npm run build之后vendor.js文件过大的解决方法
2018/09/27 Javascript
微信自定义分享链接信息(标题,图片和内容)实现过程详解
2019/09/04 Javascript
JavaScript图像放大镜效果实现方法详解
2020/06/28 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
python中lambda函数 list comprehension 和 zip函数使用指南
2014/09/28 Python
python实现上传样本到virustotal并查询扫描信息的方法
2014/10/05 Python
python 根据pid杀死相应进程的方法
2017/01/16 Python
python2 与python3的print区别小结
2018/01/16 Python
wxPython+Matplotlib绘制折线图表
2019/11/19 Python
Python的历史与优缺点整理
2020/05/26 Python
Python 串口通信的实现
2020/09/29 Python
真正了解CSS3背景下的@font face规则
2017/05/04 HTML / CSS
英国最红的高街时尚品牌:Topshop
2016/08/05 全球购物
一家专门做特卖的网站:唯品会
2016/10/09 全球购物
PAUL HEWITT手表美国站:德国北部时尚生活配饰品牌,船锚元素
2017/11/18 全球购物
日本小田急百货官网:Odakyu
2018/07/19 全球购物
编辑硕士自荐信范文
2013/11/27 职场文书
空中乘务员岗位职责
2014/03/08 职场文书
借款担保书范文
2014/05/13 职场文书
跳蚤市场口号
2014/06/13 职场文书
办公室文员工作自我鉴定
2014/09/19 职场文书
2015年中秋节主持词
2015/07/30 职场文书
阿里云服务器搭建Php+Apache运行环境的详细过程
2021/05/15 PHP
MYSQL(电话号码,身份证)数据脱敏的实现
2021/05/28 MySQL
MySQL的安装与配置详细教程
2021/06/26 MySQL
springboot中rabbitmq实现消息可靠性机制详解
2021/09/25 Java/Android