项目中遇到一个小问题,就是把服务器创建的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. UEP-按钮控制及时间

    按钮的判断 var record = ajaxgrid.getAllRecords(); if(record.length>0){ var isPack=record[0].get(" ...

  2. node中定时器, process.nextTick(), setImediate()的区别与联系

    1.定时器 setTimeout()和setInterval()与浏览器中的API是一致的,定时器的问题在于,他并非精确的(在容忍范围内).尽管事件循环十分快,但是如果某一次循环占用的时间较多,那么下 ...

  3. 编写自己的JavaScript方法库

    下面列出了我在项目中经常使用到的一些方法,这些方法可以很方便的提高我们的工作效率,代码在GitHub上面,点击目录就可以跳转了,欢迎大家通过fork,改编和优化成自己的JavaScript方法库. 目 ...

  4. Linq学习(主要参考linq之路)----2LINQ方法语法

    方法语法:Fluent Syntax 方法语法是非常灵活和重要的.我们这里讲描述使用连接查询运算符的方式来创建复杂的子查询,方法语法的本质是通过扩展方法和Lambda表达式来创建查询. eg1: st ...

  5. 两种方法上传本地文件到github

    https://www.jianshu.com/p/c70ca3a02087 自从使用github以来,一直都是在github网站在线上传文件到仓库中,但是有时因为网络或者电脑的原因上传失败.最重要的 ...

  6. SSL证书安装指引

    https://cloud.tencent.com/document/product/400/4143 下载得到的 www.domain.com.zip 文件,解压获得3个文件夹,分别是Apache. ...

  7. 百度编辑器ueditor

    ,怎么将上传的图片路径改到项目的public/uploads文件夹呢?哪位大神改过

  8. 解决方案 git@github.com出现Permission denied (publickey)

     ubentu 13.10 git version 1.8.3.2 解决方案:ssh -T git@github.com出现Permission denied (publickey).的问题 今天的任 ...

  9. wamp apache无法启动的解决方法

    作者 grunmin 2014.03.12 14:44* 字数 535 阅读 22167评论 9喜欢 5 如题,近日在安装wamp的时候出现了apache无法启动的情况.wamp图标一直显示橙色.网上 ...

  10. 宝塔服务器管理助手Linux面版-使用教程

    在顺利安装宝塔服务器linux面板之后,我们打开这个面板,UI界面设计的很简介,所有命令一看就知道是干什么用的,和我们以前用过的虚拟主机管理后台是很像的. 方法/步骤 1 使用方法如下: 面板地址:h ...