微信企业号开发之微信考勤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 相关文章推荐
jquery jqPlot API 中文使用教程(非常强大的图表工具)
Aug 15 Javascript
深入理解JavaScript系列(7) S.O.L.I.D五大原则之开闭原则OCP
Jan 15 Javascript
jQuery数组处理代码详解(含实例演示)
Feb 03 Javascript
Egret引擎开发指南之视觉编程
Sep 03 Javascript
JavaScript严格模式禁用With语句的原因
Oct 20 Javascript
JavaScript事件学习小结(一)事件流
Jun 09 Javascript
超简单的Vue.js环境搭建教程
Mar 17 Javascript
详解Angular Reactive Form 表单验证
Jul 06 Javascript
详解Vue CLI3配置解析之css.extract
Sep 14 Javascript
简单了解vue中父子组件如何相互传递值(基础向)
Jul 12 Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
Oct 11 Javascript
JS删除数组指定值常用方法详解
Jun 04 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+jQuery 注册模块的改进(一):验证码存入SESSION
2014/10/14 PHP
ThinkPHP采用原生query实现关联查询left join实例
2014/12/02 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
2017/02/07 PHP
Laravel中10个有用的用法小结
2019/05/06 PHP
Yii框架数据库查询、增加、删除操作示例
2019/10/14 PHP
javascript对象之内置对象Math使用方法
2010/04/16 Javascript
基于jQuery实现的图片切换焦点图整理
2014/12/07 Javascript
javascript 事件处理示例分享
2014/12/31 Javascript
this,this,再次讨论javascript中的this,超全面(经典)
2016/01/05 Javascript
利用jquery实现瀑布流3种案例
2016/09/18 Javascript
jQuery插件之validation插件
2017/03/29 jQuery
JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)
2017/06/19 Javascript
jQuery之动画ajax事件(实例讲解)
2017/07/18 jQuery
input 标签实现输入框带提示文字效果(两种方法)
2017/10/09 Javascript
JS获取url参数,JS发送json格式的POST请求方法
2018/03/29 Javascript
vue中使用sessionStorage记住密码功能
2018/07/24 Javascript
Vue中插入HTML代码的方法
2018/09/21 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
2019/05/30 Javascript
解决Vue.js应用回退或刷新界面时提示用户保存修改问题
2019/11/24 Javascript
vue数据更新UI不刷新显示的解决办法
2020/08/06 Javascript
js闭包的9个使用场景
2020/12/29 Javascript
JavaScript 生成唯一ID的几种方式
2021/02/19 Javascript
python框架django基础指南
2016/09/08 Python
Python并发之多进程的方法实例代码
2018/08/15 Python
python redis 删除key脚本的实例
2019/02/19 Python
Win10+GPU版Pytorch1.1安装的安装步骤
2019/09/27 Python
Python sklearn中的.fit与.predict的用法说明
2020/06/28 Python
python自动化测试三部曲之unittest框架的实现
2020/10/07 Python
照片礼物和装饰:MyPhoto
2019/11/02 全球购物
木马的传播途径主要有哪些
2016/04/08 面试题
计算机网络毕业生自荐信
2013/10/01 职场文书
计算机科学与技术应届生求职信
2013/11/07 职场文书
大学新生欢迎词
2014/01/10 职场文书
村党支部群众路线教育实践活动对照检查材料
2014/09/26 职场文书
毕业实习指导教师评语
2014/12/31 职场文书
师德师风个人总结
2015/02/06 职场文书