微信企业号开发之微信考勤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 相关文章推荐
js判断是否为数组的函数: isArray()
Oct 30 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
Sep 06 Javascript
JavaScript判断一个字符串是否包含指定子字符串的方法
Mar 18 Javascript
javascript自动恢复文本框点击清除后的默认文本
Jan 12 Javascript
Jquery轮播效果实现过程解析
Mar 30 Javascript
BootStrap智能表单实战系列(九)表单图片上传的支持
Jun 13 Javascript
浅谈JS正则表达式的RegExp对象和括号的使用
Jul 28 Javascript
Vue.js学习笔记之 helloworld
Aug 14 Javascript
微信小程序 MD5加密登录密码详解及实例代码
Jan 12 Javascript
ionic2打包android时gradle无法下载的解决方法
Apr 05 Javascript
基于vue cli 通过命令行传参实现多环境配置
Jul 12 Javascript
浅谈JavaScript中的“!!”作用
Aug 03 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
一个简单的MySQL数据浏览器
2006/10/09 PHP
PHP与SQL注入攻击[一]
2007/04/17 PHP
PHP isset()与empty()的使用区别详解
2017/02/10 PHP
PHP count_chars()函数讲解
2019/02/14 PHP
PHP中strtr与str_replace函数运行性能简单测试示例
2019/06/22 PHP
Laravel5.1 框架控制器基础用法实例分析
2020/01/04 PHP
JavaScript Konami Code 实现代码
2009/07/29 Javascript
javascript教程之不完整的继承(js原型链)
2014/01/13 Javascript
JS不用正则验证输入的字符串是否为空(包含空格)的实现代码
2016/06/14 Javascript
js+div+css下拉导航菜单完整代码分享
2016/12/28 Javascript
ES6使用let命令更简单的实现块级作用域实例分析
2017/03/31 Javascript
基于BootStrap multiselect.js实现的下拉框联动效果
2017/07/28 Javascript
JQ图片文件上传之前预览功能的简单实例(分享)
2017/11/12 Javascript
使用Vue父子组件通信实现todolist的功能示例代码
2019/04/11 Javascript
node实现socket链接与GPRS进行通信的方法
2019/05/20 Javascript
使用Vue-cli 中为单独页面设置背景图片铺满全屏
2020/07/17 Javascript
[48:24]完美世界DOTA2联赛循环赛LBZS vs Forest 第一场 10月30日
2020/10/31 DOTA
浅谈Python 字符串格式化输出(format/printf)
2016/07/21 Python
Python实现Kmeans聚类算法
2020/06/10 Python
使用Python爬取最好大学网大学排名
2018/02/24 Python
python 实现在Excel末尾增加新行
2018/05/02 Python
配置 Pycharm 默认 Test runner 的图文教程
2018/11/30 Python
python爬虫 Pyppeteer使用方法解析
2019/09/28 Python
使用Python+selenium实现第一个自动化测试脚本
2020/03/17 Python
python实现单机五子棋
2020/08/28 Python
详解Python 函数参数的拆解
2020/09/02 Python
CSS3绘制不规则图形的一些方法示例
2015/11/07 HTML / CSS
优质有机椰子产品:Dr. Goerg
2019/09/24 全球购物
土木工程毕业生推荐信
2013/10/28 职场文书
《穷人》教学反思
2014/04/08 职场文书
导游个人求职信
2014/04/25 职场文书
亲子活动总结
2014/04/26 职场文书
绿色家庭事迹材料
2014/05/01 职场文书
教师党员批评与自我批评发言稿
2014/10/15 职场文书
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
2022/04/21 Python
Vue 打包后相对路径的引用问题
2022/06/05 Vue.js