微信企业号开发之微信考勤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写的放大镜效果
Aug 22 Javascript
上传图片js判断图片尺寸和格式兼容IE
Sep 01 Javascript
用javascript关闭本窗口技巧小结
Sep 05 Javascript
JavaScript原生对象之String对象的属性和方法详解
Mar 13 Javascript
基于JQuery实现的跑马灯效果(文字无缝向上翻动)
Dec 02 Javascript
详解Vuejs2.0 如何利用proxyTable实现跨域请求
Aug 03 Javascript
vue打包的时候自动将px转成rem的操作方法
Jun 20 Javascript
Vue+Element实现网页版个人简历系统(推荐)
Dec 31 Javascript
js实现点击按钮随机生成背景颜色
Sep 05 Javascript
vue集成一个支持图片缩放拖拽的富文本编辑器
Jan 29 Vue.js
js实现验证码干扰(动态)
Feb 23 Javascript
vue3引入highlight.js进行代码高亮的方法实例
Apr 08 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数组的一些常见操作汇总
2011/07/17 PHP
从刷票了解获得客户端IP的方法
2015/09/21 PHP
PHP自定义错误用法示例
2016/09/28 PHP
PHP+Ajax实现的检测用户名功能简单示例
2019/02/12 PHP
jquery高效反选具体实现
2013/05/05 Javascript
JS修改css样式style浅谈
2013/05/06 Javascript
jquery动态加载js三种方法实例
2013/08/03 Javascript
js获取IFRAME当前的URL的方法
2013/11/13 Javascript
layer弹出层框架alert与msg详解
2017/03/14 Javascript
ionic2屏幕适配实现适配手机、平板等设备的示例代码
2017/08/11 Javascript
javascript自定义事件功能与用法实例分析
2017/11/08 Javascript
JavaScript之实现一个简单的Vue示例
2019/01/17 Javascript
利用d3.js实现蜂巢图表带动画效果
2019/09/03 Javascript
详解vue页面首次加载缓慢原因及解决方案
2019/11/06 Javascript
原生js+css调节音量滑块
2020/01/15 Javascript
node.js基础知识汇总
2020/08/25 Javascript
[31:33]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第一场
2014/05/23 DOTA
Python 命令行参数sys.argv
2008/09/06 Python
简化Python的Django框架代码的一些示例
2015/04/20 Python
Python用UUID库生成唯一ID的方法示例
2016/12/15 Python
利用Python代码实现数据可视化的5种方法详解
2018/03/25 Python
Python利用Django如何写restful api接口详解
2018/06/08 Python
Django使用中间键实现csrf认证详解
2019/07/22 Python
Django中的session用法详解
2020/03/09 Python
css3的transform中scale缩放详解
2014/12/08 HTML / CSS
HTML5和以前HTML4的区别整理
2013/10/20 HTML / CSS
HTML5中的进度条progress元素简介及兼容性处理
2016/06/02 HTML / CSS
电影T恤、80年代T恤和80年代服装:TV Store Online
2020/01/05 全球购物
软件设计的目标是什么
2016/12/04 面试题
公司联欢晚会主持词
2014/03/22 职场文书
我读书我快乐演讲稿
2014/05/07 职场文书
领导班子四风表现材料
2014/08/23 职场文书
2015年暑期社会实践报告
2015/07/13 职场文书
生活委员竞选稿
2015/11/21 职场文书
小学语文新课改心得体会
2016/01/22 职场文书
2016年社会管理综治宣传月活动总结
2016/03/16 职场文书