微信企业号开发之微信考勤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 相关文章推荐
SyntaxHighlighter代码加色使用方法
Sep 07 Javascript
JavaScript 面向对象的 私有成员和公开成员
May 13 Javascript
js控制CSS样式属性语法对照表
Dec 11 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
Sep 09 Javascript
jQuery实现移动端手机商城购物车功能
Sep 24 Javascript
Node.js的Mongodb使用实例
Dec 30 Javascript
React-Native做一个文本输入框组件的实现代码
Aug 10 Javascript
Swiper自定义分页器使用详解
Dec 28 Javascript
vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定
Sep 14 Javascript
小程序scroll-view安卓机隐藏横向滚动条的实现详解
May 16 Javascript
JavaScript内置对象之Array的使用小结
May 12 Javascript
Vue数据双向绑定原理实例解析
May 15 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
PHP4.04简明安装
2006/10/09 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
2014/03/08 PHP
smarty模板引擎中自定义函数的方法
2015/01/22 PHP
thinkPHP模板算术运算相关函数用法分析
2016/07/12 PHP
phpstudy后门rce批量利用脚本的实现
2019/12/12 PHP
基于JQuery的访问WebService的代码(可访问Java[Xfire])
2010/11/19 Javascript
js自执行函数的几种不同写法的比较
2012/08/16 Javascript
ie下jquery.getJSON的缓存问题的处理方法
2013/03/29 Javascript
jQuery fadeTo方法调整图片的透明度使用介绍
2013/05/06 Javascript
js保留两位小数使用toFixed实现
2013/07/29 Javascript
js跨浏览器实现将字符串转化为xml对象的方法
2013/09/25 Javascript
js获取当月最后一天实例代码
2013/11/19 Javascript
jquery中event对象属性与方法小结
2013/12/18 Javascript
js返回前一页刷新本页重载页面
2014/07/29 Javascript
jquery判断浏览器后退时候弹出消息的方法
2014/08/11 Javascript
JavaScript面向对象精要(上部)
2017/09/12 Javascript
原生JS上传大文件显示进度条 php上传文件代码
2020/03/27 Javascript
vue左右侧联动滚动的实现代码
2018/06/06 Javascript
vue2 设置router-view默认路径的实例
2018/09/20 Javascript
手把手教你写一个微信小程序(推荐)
2018/10/17 Javascript
微信小程序批量监听输入框对按钮样式进行控制的实现代码
2019/10/12 Javascript
Vue包大小优化的实现(从1.72M到94K)
2021/02/18 Vue.js
查看Python安装路径以及安装包路径小技巧
2015/04/28 Python
微信跳一跳自动运行python脚本
2018/01/08 Python
对python for 文件指定行读写操作详解
2018/12/29 Python
Python发送邮件的实例代码讲解
2019/10/16 Python
wxPython实现整点报时
2019/11/18 Python
美国隐形眼镜销售网站:ContactsDirect
2017/10/28 全球购物
西班牙香水和化妆品网上商店:Douglas
2017/10/29 全球购物
简述安装Slackware Linux系统的过程
2012/01/12 面试题
班组长工作职责
2013/12/25 职场文书
销售辞职报告范文
2014/01/12 职场文书
网络编辑求职信
2014/04/30 职场文书
工作能力自我评价2015
2015/03/05 职场文书
小平小道观后感
2015/06/09 职场文书
年终工作总结范文
2019/06/20 职场文书