微信企业号开发之微信考勤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 23 Javascript
javascript对select标签的控制(option选项/select)
Jan 31 Javascript
使用JS取得焦点(focus)元素代码
Mar 22 Javascript
Javascript中3种实现继承的方法和代码实例
Aug 12 Javascript
重写document.write实现无阻塞加载js广告(补充)
Dec 12 Javascript
js获取时间函数及扩展函数的方法
Oct 30 Javascript
JS自定义混合Mixin函数示例
Nov 26 Javascript
深入理解javascript的getTime()方法
Feb 16 Javascript
JavaScript正则表达式简单实用实例
Jun 23 Javascript
微信小程序实现获取自己所处位置的经纬度坐标功能示例
Nov 30 Javascript
Element input树型下拉框的实现代码
Dec 21 Javascript
关于better-scroll插件的无法滑动bug(2021通过插件解决)
Mar 01 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
BBS(php & mysql)完整版(四)
2006/10/09 PHP
PHP中Session和Cookie是如何操作的
2015/10/10 PHP
Linux平台PHP5.4设置FPM线程数量的方法
2016/11/09 PHP
Laravel框架执行原生SQL语句及使用paginate分页的方法
2018/08/17 PHP
Javascript String对象扩展HTML编码和解码的方法
2009/06/02 Javascript
javascript 导出数据到Excel(处理table中的元素)
2009/12/18 Javascript
jQuery$命名冲突怎么办如何解决
2014/01/16 Javascript
深入理解JavaScript系列(30):设计模式之外观模式详解
2015/03/03 Javascript
jQuery ajax方法传递中文时出现中文乱码的解决方法
2016/07/25 Javascript
js删除Array数组中指定元素的两种方法
2016/08/03 Javascript
详解vue父子模版嵌套案例
2017/03/04 Javascript
bootstrap table 多选框分页保留示例代码
2017/03/08 Javascript
微信小程序 出现47001 data format error原因解决办法
2017/03/10 Javascript
详解angular element()方法使用
2017/04/08 Javascript
webpack学习--webpack经典7分钟入门教程
2017/06/28 Javascript
基于JavaScript实现无限加载瀑布流
2017/07/21 Javascript
element-ui使用导航栏跳转路由的用法详解
2018/08/22 Javascript
vue项目使用axios发送请求让ajax请求头部携带cookie的方法
2018/09/26 Javascript
jQuery删除/清空指定元素的所有子节点实例代码
2019/07/04 jQuery
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
2019/08/22 Javascript
Python之列表的插入&替换修改方法
2018/06/28 Python
python paramiko利用sftp上传目录到远程的实例
2019/01/03 Python
python解压TAR文件至指定文件夹的实例
2019/06/10 Python
关于numpy.where()函数 返回值的解释
2019/12/06 Python
4行Python代码生成图像验证码(2种)
2020/04/07 Python
HTML5添加禁止缩放功能
2017/11/03 HTML / CSS
YSL圣罗兰美妆英国官网:Yves Saint Laurent Beauty UK
2019/08/03 全球购物
艺术设计专业个人求职信范文
2013/12/11 职场文书
财政局党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
大学生年度个人总结
2015/02/15 职场文书
2015年敬老院工作总结
2015/05/18 职场文书
停发工资证明范本
2015/06/12 职场文书
2015年学校少先队工作总结
2015/07/20 职场文书
「我的青春恋爱物语果然有问题。-妄言录-」第20卷封面公开
2022/03/21 日漫
Java实现经典游戏泡泡堂的示例代码
2022/04/04 Java/Android