微信企业号开发之微信考勤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 相关文章推荐
ExtJs Excel导出并下载IIS服务器端遇到的问题
Sep 16 Javascript
javascript类型转换示例
Apr 29 Javascript
js判断文本框剩余可输入字数的方法
Feb 04 Javascript
JavaScript中用toString()方法返回时间为字符串
Jun 12 Javascript
jquery实现文本框的禁用和启用
Dec 07 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
Dec 08 Javascript
修改ligerui 默认确认按钮的方法
Dec 27 Javascript
js数组与字符串常用方法总结
Jan 13 Javascript
JavaScript中for循环的几种写法与效率总结
Feb 03 Javascript
关于vue-resource报错450的解决方案
Jul 24 Javascript
QQ跳转支付宝并自动领红包脚本(最新)
Jun 22 Javascript
微信小程序表单弹窗实例
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
php cookis创建实现代码
2009/03/16 PHP
fleaphp rolesNameField bug解决方法
2011/04/23 PHP
PHP排序算法的复习和总结
2012/02/15 PHP
PHP和.net中des加解密的实现方法
2013/02/27 PHP
深入php函数file_get_contents超时处理的方法详解
2013/06/03 PHP
PHP学习笔记(二) 了解PHP的基本语法以及目录结构
2014/08/04 PHP
thinkphp实现like模糊查询实例
2014/10/29 PHP
详解php中serialize()和unserialize()函数
2017/07/08 PHP
PHP实现发送微博消息功能完整示例
2019/12/04 PHP
Jquery实现无刷新DropDownList联动实现代码
2010/03/08 Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
2013/07/25 Javascript
js Dialog 去掉右上角的X关闭功能
2014/04/23 Javascript
nodejs 整合kindEditor实现图片上传
2015/02/03 NodeJs
Bootstrap文件上传组件之bootstrap fileinput
2016/11/25 Javascript
Jquery Easyui验证组件ValidateBox使用详解(20)
2016/12/18 Javascript
Vue.js实现文章评论和回复评论功能
2020/05/30 Javascript
js实现rem自动匹配计算font-size的示例
2017/11/18 Javascript
简述vue路由打开一个新的窗口的方法
2018/11/29 Javascript
uniapp与webview之间的相互传值的实现
2020/06/29 Javascript
微信小程序以7天为周期连续签到7天功能效果的示例代码
2020/08/20 Javascript
python共享引用(多个变量引用)示例代码
2013/12/04 Python
python入门教程 python入门神图一张
2018/03/05 Python
使用Python创建简单的HTTP服务器的方法步骤
2019/04/26 Python
pytorch实现mnist分类的示例讲解
2020/01/10 Python
Python版中国省市经纬度
2020/02/11 Python
python获取依赖包和安装依赖包教程
2020/02/13 Python
如何在sublime编辑器中安装python
2020/05/20 Python
美国女性运动零售品牌:Lady Foot Locker
2017/05/12 全球购物
eBay加拿大站:eBay.ca
2019/06/20 全球购物
出口公司经理求职简历中的自我评价
2013/10/13 职场文书
宾馆总经理岗位职责
2014/02/14 职场文书
2014年驻村干部工作总结
2014/11/17 职场文书
产品调价通知函
2015/04/20 职场文书
2015年事业单位办公室文员工作总结
2015/04/24 职场文书
分析设计模式之模板方法Java实现
2021/06/23 Java/Android
JavaScript正则表达式实现注册信息校验功能
2022/05/30 Java/Android