微信企业号开发之微信考勤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 相关文章推荐
Firefox getBoxObjectFor getBoundingClientRect联系
Oct 26 Javascript
只需一行代码,轻松实现一个在线编辑器
Nov 12 Javascript
使用apply方法实现javascript中的对象继承
Dec 16 Javascript
快速解决js动态改变dom元素属性后页面及时渲染的问题
Jul 06 Javascript
Bootstrap页面缩小变形的快速解决办法
Feb 03 Javascript
jquery横向纵向鼠标滚轮全屏切换
Feb 27 Javascript
jQuery获取复选框选中的当前行的某个字段的值
Sep 15 jQuery
浅谈vue项目重构技术要点和总结
Jan 23 Javascript
微信小程序手机号码验证功能的实例代码
Aug 28 Javascript
微信小程序云开发 搭建一个管理小程序
May 17 Javascript
vue指令做滚动加载和监听等
May 26 Javascript
vue-devtools的安装和使用步骤详解
Oct 17 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
《逃离塔科夫》——“萌新劝退,老手自嗨”的硬核FPS游戏
2020/04/03 其他游戏
php的header和asp中的redirect比较
2006/10/09 PHP
php Memcache 中实现消息队列
2009/11/24 PHP
PHP中header和session_start前不能有输出原因分析
2013/01/11 PHP
Linux下PHP加速器APC的安装与配置笔记
2014/10/24 PHP
ThinkPHP中使用ajax接收json数据的方法
2014/12/18 PHP
使用新浪微博API的OAuth认证发布微博实例
2015/03/27 PHP
php实现json编码的方法
2015/07/30 PHP
Yii实现复选框批量操作实例代码
2017/03/15 PHP
JavaScript给url网址进行encode编码的方法
2015/03/18 Javascript
使用DNode实现php和nodejs之间通信的简单实例
2015/07/06 NodeJs
Javascript中神奇的this
2016/01/20 Javascript
JS实现图文并茂的tab选项卡效果示例【附demo源码下载】
2016/09/21 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
2016/11/30 Javascript
iscroll.js滚动加载实例详解
2017/07/18 Javascript
详解如何让Express支持async/await
2017/10/09 Javascript
jQuery基于cookie实现换肤功能实例
2017/10/14 jQuery
Vue中使用clipboard实现复制功能
2018/09/05 Javascript
vue2.0$nextTick监听数据渲染完成之后的回调函数方法
2018/09/11 Javascript
JS实现数组深拷贝的方法分析
2019/03/06 Javascript
Angular脚手架开发的实现步骤
2019/04/09 Javascript
[00:43]拉比克至宝魔导师密钥展示
2018/12/20 DOTA
使用python实现滑动验证码功能
2019/08/05 Python
Django def clean()函数对表单中的数据进行验证操作
2020/07/09 Python
python爬虫构建代理ip池抓取数据库的示例代码
2020/09/22 Python
HTML5中的websocket实现直播功能
2018/05/21 HTML / CSS
Booking.com荷兰:全球酒店网上预订
2017/08/22 全球购物
安全检查验收制度
2014/01/12 职场文书
技校个人求职信范文
2014/01/25 职场文书
亲子活动总结
2014/04/26 职场文书
学校运动会报道稿
2014/09/23 职场文书
捐款通知怎么写
2015/04/24 职场文书
篮球赛新闻稿
2015/07/17 职场文书
2016年3月份红领巾广播稿
2015/12/21 职场文书
教你使用一行Python代码玩遍童年的小游戏
2021/08/23 Python
微软Win11 全新照片应用面向 Dev预览版推出 新版本上手体验图集
2022/09/23 数码科技