利用GUID唯一标识符并设置它的过期时间
项目中遇到一个小问题,就是把服务器创建的GUID发送给客户端,客户端接收后,下次访问时带上这个GUID,
服务端这边就进行验证,并做相应的处理。
问题是:项目中还需要这个GUID带过期时间,那是如何设置呢?
**********************************************************************
方案如下:
1.客户端访问服务端的登陆方法时,在返回GUID(PS:GUID变量也是全局的)给客户端时,先创建当前的时间点(DateTime.Now)保存为全局的时间点。
客户端下次访问(签到)方法时,先验证用户的GUID是否相同,接着创建当前访问的时间DateTime.Now,
然后用当前创建的时间减去访问登陆方法时的时间点,看是否大于我们指定的时间点。
//创建全局的GUID
string guid = string.Empty;
//创建全局的时间点
DateTime dateTime;
private void Login(string param)
{
dateTime = DateTime.Now;
返回GUID。
}
private void Check(string param)
{
//TimeSpan time=DateTime.Now-dateTime;
if ((DateTime.Now - dateTime).Minutes > 1)//1.大于某个时间点,返回一个约定的状态码,让手机作相应的处理
}
2.客户端访问登陆方法时创建GUID再加上当前的时间,客户端访问签到方法时,将GUID上的时间点给截出来。
然后创建当前的时间,两者的时间再相减,这样又能保证客户端的唯一性,又当保证当前的过期时间。
private void Login(string param)
{
guid = System.Guid.NewGuid().ToString()+DateTime.Now;
返回GUID。
}
private void Check(string param)
{
string time=guid.Remove(起点数,个数)
if ((DateTime.Now - DateTime.Parse(time)).Minutes > 1)//大于某个时间点,返回一个约定的状态码,让手机作相应的处理
{ 作相应的处理 }
}
利用GUID唯一标识符并设置它的过期时间的更多相关文章
- RabbitMQ 设置队列的过期时间
设置队列的过期时间非常简单,在声明队列时,设置x-expires参数即可.当队列的生存周期超时后,RabbitMQ server会自动将该队列删除. 代码如下: channel.QueueDeclar ...
- Redis五种数据类型-设置key的过期时间
1.redis命令客户端 [root@localhost bin]# ./redis-cli 127.0.0.1:6379> #是否运行着 127.0.0.1:6379> ping PON ...
- thinkphp3.2设置session的过期时间
thinkPHP3.2中session的过期时间配置是不能使用的,我们需要修改一下它的配置文件thinkPHP>common>functions.php,找到这一行: if(isset($ ...
- Python操作Redis之设置key的过期时间
对于一个已经存在的key,我们可以设置其过期时间,到了那个时间后,当你再去访问时,key就不存在了 有两种方式可以设置过期时间,一种是指定key从当前时间开始算起还能存活多久,时间单位有两个,一个是秒 ...
- java设置配置session过期时间的方法
1) Timeout in the deployment descriptor (web.xml)以分钟为单位 代码如下 复制代码 <web-app ...> <session-co ...
- Thinkphp框架下设置session的过期时间
打开项目中的配置文件,添加session的过期配置,如下: 'SESSION_OPTIONS' => array( 'name' => 'BJYSESSION', //设置session名 ...
- Kettle 中生成随机数 或者GUID唯一标识符
添加步骤 "生成随机数" 英文名字叫 "Generate Random Value" 如下图..选择UUID..
- Redis设置Key的过期时间 – EXPIRE命令
EXPIRE key seconds 为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除. 操作key对生存时间的影响 生存时间可以通过使用 DEL 命令来删除整个 ...
- C# 设置程序session过期时间
服务器设置: 如果服务器上点击站点没有ASP这一项: 下方 角色服务 添加角色服务 安装完毕重新打开iis 点击站点 就可以看到ASP这个选项了 程序webconfig配置: <system.w ...
随机推荐
- JXLS 2.4.0系列教程(四)——拾遗 如何做页面小计
注:阅读本文前,请先阅读第四篇文章. http://www.cnblogs.com/foxlee1024/p/7619845.html 前面写了第四篇教程,发现有些东西忘了讲了,这里补回来. 忘了讲两 ...
- [国嵌攻略][153][I2C裸机驱动设计]
eeprom简介 eeprom电可擦除可编程只读存储器,是一种类似于flash的固态存储器,但是与flash相比又存在一些区别: 1.eeprom可以按位擦写,而flash只能大片擦除. 2.eepr ...
- c#委托事件入门--第二讲:事件入门
上文 c#委托事件入门--第一讲:委托入门 中和大家介绍了委托,学习委托必不可少的就要说下事件.以下思明仍然从事件是什么.为什么用事件.怎么实现事件和总结介绍一下事件 1.事件是什么:. 1.1 NE ...
- TPshop学习(8)微信支付
http://blog.csdn.net/phper8/article/details/76383415 学习内容: https://www.kancloud.cn/tpshop/thinkphp5/ ...
- 利用H5构建地图和获取定位地点
地图与地理定位 定位在大部分项目中都需要实现,如何实现主要有如下的几种方法 H5定位 在HTML5中navigator有很强大的功能,其中就有定位的方法 navigator.geolocation.g ...
- 邓_phpcms_二次开发_留言板
================================================================= •在 phpcms/modules 目录下创建文件夹,并将其命名为g ...
- html_栏目下拉
========================================================= =================[ 下拉栏目菜单 ]=============== ...
- J.U.C ThreadPoolExecutor解析
Java里面线程池顶级接口是Executor,但严格意义上讲Executor并不是一个线程池,而是一个线程执行工具,真正的线程池接口是ExecutorService.关系类图如下: 首先Executo ...
- myeclipse编码
window --->perferences
- SpringMvc4.x--@ControllerAdvice注解
通过@ControllerAdvice.我们可以将对于控制器的全局配置放置在同一个位置,注解了@ControllerAdvice的类的方法可以使用@ExceptionHandler,@InitBind ...