微信企业号开发之微信考勤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技术技巧大全(五)
Jan 22 Javascript
JavaScript 快捷键设置实现代码
Mar 13 Javascript
原来Jquery.load的方法可以一直load下去
Mar 28 Javascript
Java Mybatis框架入门基础教程
Sep 21 Javascript
AngularJs bootstrap搭载前台框架——准备工作
Sep 01 Javascript
JS封装的选项卡TAB切换效果示例
Sep 20 Javascript
Vue.js实现按钮的动态绑定效果及实现代码
Aug 21 Javascript
浅谈angular.copy() 深拷贝
Sep 14 Javascript
js replace 全局替换的操作方法
Jun 12 Javascript
手动下载Chrome并解决puppeteer无法使用问题
Nov 12 Javascript
微信小程序激励式视频广告组件使用详解
Dec 06 Javascript
Vue Mint UI mt-swipe的使用方式
Jun 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简介
2006/10/09 PHP
数组与类使用PHP的可变变量名需要的注意的问题
2013/06/20 PHP
Function eregi is deprecated (解决方法)
2013/06/21 PHP
PHP生成唯一订单号
2015/07/05 PHP
PHP中set_include_path()函数相关用法分析
2016/07/18 PHP
PHP中overload与override的区别
2017/02/13 PHP
详谈php中 strtr 和 str_replace 的效率问题
2017/05/14 PHP
php使用curl获取header检测开启GZip压缩的方法
2018/08/15 PHP
PHP连接sftp并下载文件的方法教程
2018/08/26 PHP
jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项
2020/04/04 Javascript
namespace.js Javascript的命名空间库
2011/10/11 Javascript
js获取内联样式的方法
2015/01/27 Javascript
浅谈javascript中基本包装类型
2015/06/03 Javascript
JS实现数组按升序及降序排列的方法
2017/04/26 Javascript
vue初尝试--项目结构(推荐)
2018/01/30 Javascript
Vue实现固定定位图标滑动隐藏效果
2019/05/30 Javascript
纯js+css实现仿移动端淘宝网站的弹出详情框功能
2019/12/29 Javascript
js仿淘宝放大镜效果
2020/12/28 Javascript
[00:58]PWL开团时刻DAY5——十人开雾0换5
2020/11/04 DOTA
Python中使用logging模块打印log日志详解
2015/04/05 Python
Python heapq使用详解及实例代码
2017/01/25 Python
高效使用Python字典的清单
2018/04/04 Python
python七夕浪漫表白源码
2019/04/05 Python
Python-while 计算100以内奇数和的方法
2019/06/11 Python
英国评分最高的女性剃须刀订阅盒:FFS Beauty
2018/01/25 全球购物
写一个在SQL Server创建表的SQL语句
2012/03/10 面试题
经典大学生求职信范文
2014/01/06 职场文书
装修五一活动策划案
2014/01/23 职场文书
情人节活动策划方案
2014/02/27 职场文书
课堂教学改革实施方案
2014/03/17 职场文书
电大毕业个人生自我鉴定
2014/03/26 职场文书
采购意向书范本
2014/03/31 职场文书
幼儿园老师寄语
2014/04/03 职场文书
体育专业求职信
2014/07/16 职场文书
Go遍历struct,map,slice的实现
2021/06/13 Golang
Oracle表空间与权限的深入讲解
2021/11/17 Oracle