微信企业号开发之微信考勤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 相关文章推荐
制作特殊字的脚本
Jun 26 Javascript
URI、URL和URN之间的区别与联系
Dec 20 Javascript
javascript String 对象
Apr 25 Javascript
jQuery中:submit选择器用法实例
Jan 03 Javascript
Javascript仿新浪游戏频道鼠标悬停显示子菜单效果
Aug 21 Javascript
AngularJs定制样式插入到ueditor中的问题小结
Aug 01 Javascript
JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法
Aug 19 Javascript
Cookies 和 Session的详解及区别
Apr 21 Javascript
详解vue的diff算法原理
May 20 Javascript
Vue 使用计时器实现跑马灯效果的实例代码
Jul 11 Javascript
基于Vue实现微前端的示例代码
Apr 24 Javascript
JS 基本概念详细介绍
Oct 16 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
php关于array_multisort多维数组排序的使用说明
2011/01/04 PHP
php在数据库抽象层简单使用PDO的方法
2015/11/03 PHP
PHP实现的文件操作类及文件下载功能示例
2016/12/24 PHP
tp5递归 无限级分类详解
2019/10/18 PHP
PHP 对象接口简单实现方法示例
2020/04/13 PHP
使用jQuery的ajax功能实现的RSS Reader 代码
2009/09/03 Javascript
js获取时间(本周、本季度、本月..)
2013/11/22 Javascript
html的DOM中document对象forms集合用法实例
2015/01/21 Javascript
js实现背景图片感应鼠标变化的方法
2015/02/28 Javascript
javascript转换静态图片,增加粒子动画效果
2015/05/28 Javascript
JavaScript编程中window的location与history对象详解
2015/10/26 Javascript
jQuery使用animate实现ul列表项相互飘动效果示例
2016/09/16 Javascript
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
2016/11/09 Javascript
JS中把函数作为另一函数的参数传递方法(总结)
2017/06/28 Javascript
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
2019/04/04 Javascript
基于javascript的拖拽类封装详解
2019/04/19 Javascript
原生js+ajax分页组件
2020/01/30 Javascript
使用graphics.py实现2048小游戏
2015/03/10 Python
Python中urllib+urllib2+cookielib模块编写爬虫实战
2016/01/20 Python
Python实现图片滑动式验证识别方法
2017/11/09 Python
python中将字典形式的数据循环插入Excel
2018/01/16 Python
python实现堆和索引堆的代码示例
2018/03/19 Python
Python读取视频的两种方法(imageio和cv2)
2018/04/15 Python
Python机器学习库scikit-learn安装与基本使用教程
2018/06/25 Python
python日志logging模块使用方法分析
2019/05/23 Python
Python内存管理实例分析
2019/07/10 Python
前端面试必备之html5的新特性
2017/09/05 HTML / CSS
HTML5 CSS3新的WEB标准和浏览器支持
2009/07/16 HTML / CSS
canvas拼图功能实现代码示例
2018/11/21 HTML / CSS
销售员岗位职责
2015/02/10 职场文书
被告答辩状范文
2015/05/22 职场文书
在职证明范本
2015/06/15 职场文书
总结一些Java常用的加密算法
2021/06/11 Java/Android
适合后台管理系统开发的12个前端框架(小结)
2021/06/29 Javascript
Python用tkinter实现自定义记事本的方法详解
2022/03/31 Python