微信企业号开发之微信考勤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 相关文章推荐
在你的网页中嵌入外部网页的方法
Apr 02 Javascript
ExtJs3.0中Store添加 baseParams 的Bug
Mar 10 Javascript
Google排名中的10个最著名的 JavaScript库
Apr 27 Javascript
Javascript编写2048小游戏
Jul 07 Javascript
jQuery实现购物车表单自动结算效果实例
Aug 10 Javascript
jQuery+PHP+MySQL实现无限级联下拉框效果
Feb 19 Javascript
JavaScript事件处理的方式(三种)
Apr 26 Javascript
JS自定义混合Mixin函数示例
Nov 26 Javascript
简单谈谈关于 npm 5.0 的新坑
Jun 08 Javascript
安装vue-cli报错 -4058 的解决方法
Oct 19 Javascript
webpack+vuex+axios 跨域请求数据的示例代码
Mar 06 Javascript
如何理解Vue的v-model指令的使用方法
Jul 19 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
德生PL990,目前市面上唯一一款便携式插卡蓝牙全波段高性能收音机
2021/03/02 无线电
用sql命令修改数据表中的一个字段为非空(not null)的语句
2010/06/04 PHP
php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
2011/10/31 PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
2016/02/26 PHP
Zend Framework动作控制器用法示例
2016/12/09 PHP
基于jquery 的一个progressbar widge
2010/10/29 Javascript
js分页代码分享
2014/04/28 Javascript
checkbox勾选判断代码分析
2014/06/11 Javascript
jQuery+ajax实现文章点赞功能的方法
2015/12/31 Javascript
javascript实现label标签跳出循环操作
2016/03/06 Javascript
JS控制静态页面传递参数并获取参数应用
2016/08/10 Javascript
JS正则替换掉小括号及内容的方法
2016/11/29 Javascript
移动端界面的适配
2017/01/11 Javascript
vue数据双向绑定的注意点
2017/06/23 Javascript
JS获取当前地理位置的方法
2017/10/25 Javascript
Vue-Router2.X多种路由实现方式总结
2018/02/09 Javascript
详解Vuex下Store的模块化拆分实践
2019/07/31 Javascript
详解element-ui表格中勾选checkbox,高亮当前行
2019/09/02 Javascript
python编写微信远程控制电脑的程序
2018/01/05 Python
python把数组中的数字每行打印3个并保存在文档中的方法
2018/07/17 Python
python爬虫中多线程的使用详解
2019/09/23 Python
Python如何在bool函数中取值
2020/09/21 Python
英国航空官网:British Airways
2016/09/11 全球购物
中国一家专注拼团的社交购物网站:拼多多
2018/06/13 全球购物
请写出 float x 与"零值"比较的 if 语句
2016/01/04 面试题
生物技术毕业生自荐信
2013/10/23 职场文书
本科毕业生自我鉴定
2013/11/02 职场文书
计算机专业学生的自我评价
2013/12/15 职场文书
副总经理任命书
2014/06/05 职场文书
预防艾滋病宣传标语
2014/06/25 职场文书
计算机相关专业自荐信
2014/07/02 职场文书
民主评议党员总结
2014/10/20 职场文书
离婚财产分隔协议书
2014/10/23 职场文书
2014年民警工作总结
2014/11/25 职场文书
如何让2019年上半年的工作总结更出色!
2019/07/01 职场文书
redis缓存存储Session原理机制
2021/11/20 Redis