项目中遇到一个小问题,就是把服务器创建的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唯一标识符并设置它的过期时间的更多相关文章

  1. RabbitMQ 设置队列的过期时间

    设置队列的过期时间非常简单,在声明队列时,设置x-expires参数即可.当队列的生存周期超时后,RabbitMQ server会自动将该队列删除. 代码如下: channel.QueueDeclar ...

  2. Redis五种数据类型-设置key的过期时间

    1.redis命令客户端 [root@localhost bin]# ./redis-cli 127.0.0.1:6379> #是否运行着 127.0.0.1:6379> ping PON ...

  3. thinkphp3.2设置session的过期时间

    thinkPHP3.2中session的过期时间配置是不能使用的,我们需要修改一下它的配置文件thinkPHP>common>functions.php,找到这一行: if(isset($ ...

  4. Python操作Redis之设置key的过期时间

    对于一个已经存在的key,我们可以设置其过期时间,到了那个时间后,当你再去访问时,key就不存在了 有两种方式可以设置过期时间,一种是指定key从当前时间开始算起还能存活多久,时间单位有两个,一个是秒 ...

  5. java设置配置session过期时间的方法

    1) Timeout in the deployment descriptor (web.xml)以分钟为单位 代码如下 复制代码 <web-app ...> <session-co ...

  6. Thinkphp框架下设置session的过期时间

    打开项目中的配置文件,添加session的过期配置,如下: 'SESSION_OPTIONS' => array( 'name' => 'BJYSESSION', //设置session名 ...

  7. Kettle 中生成随机数 或者GUID唯一标识符

    添加步骤  "生成随机数"  英文名字叫  "Generate Random Value" 如下图..选择UUID..

  8. Redis设置Key的过期时间 – EXPIRE命令

    EXPIRE key seconds 为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除. 操作key对生存时间的影响 生存时间可以通过使用 DEL 命令来删除整个 ...

  9. C# 设置程序session过期时间

    服务器设置: 如果服务器上点击站点没有ASP这一项: 下方 角色服务 添加角色服务 安装完毕重新打开iis 点击站点 就可以看到ASP这个选项了 程序webconfig配置: <system.w ...

随机推荐

  1. IOS safari浏览器登陆时Cookie无法保存的问题

    近期完成了一个儿童的测评项目,测试到最后的时候发现在ipad mini上登陆成功之后无法跳转页面,而安卓和pc端都可以,找了大半天bug,发现其他的苹果设备都没问题,只能一个一个的调试,结果发现设备的 ...

  2. HTTP协议----->连接管理

    1.  TCP连接 1.1  TCP为HTTP提供了一条可靠的比特传输管道. TCP(Transmission Control Protocol)----传输控制协议,是主机对主机层的传输控制协议,提 ...

  3. nginx 防火墙、权限问题

      1.nginx安装,配置完成之后,尝试访问没有响应,主机可以ping通,/var/log/nginx/access.log日志没有查到任何记录 解决方法:查看linux防火墙,关闭 命令:ipta ...

  4. CentOS系统下Redis安装和自启动配置的步骤

    相信大家都知道Redis是一个C实现的基于内存.可持久化的键值对数据库,在分布式服务中常作为缓存服务.所以这篇文章将详细介绍在CentOS系统下如何从零开始安装到配置启动服务.有需要的可以参考借鉴. ...

  5. PHP批量去除bom头代码的小工具

    在 aitecms 群里有网友抱怨了好几天说本地的验证码一直无法显示,后来听说解决了,问其如何解决的,说是去除了文件 bom 就好了.后来百度到一篇文章也说 dedecms 的验证码不能显示,某次解决 ...

  6. CCF系列之I’m stuck!(201312-5)

    试题名称: I’m stuck! 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定一个R行C列的地图,地图的每一个方格可能是'#', '+', '-', '|', '.', ...

  7. MySql 修改外键 支持级联删除

    首先必须要有外键,InnoDB甚么的都不说了,直接上修改句子. 要先删除该外键,然后添加. 具体原因貌似是因为不支持alter外键的操作. ALTER TABLE `t_terminal` DROP ...

  8. 懒人小技巧, Toad 常用偷懒方法

    用toad很久了, 感叹它的功能强大的同时整理了一些相关技巧,  有以前在网上看到的也有自己平时用的时候偶尔发现的, 分享一下, 它对用户体验方面做的真的很到位, 通过各种方式来方便用户的操作. 菜鸟 ...

  9. linux_常用命令_2

    rev 反向读取, reverse echo 123456 | rev # 结果为 654321 rev Name.txt # 行号没变,每一行的数据翻转过来 less 具有more命令所有功能,更加 ...

  10. windows 查看端口被哪个程序占用

    比如查看端口8080 1. 查看占用端口8080对应的PID,输入命令:netstat -aon|findstr "8080" (加入查到pid为111222) 2. 继续输入ta ...