项目中遇到一个小问题,就是把服务器创建的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. BLE空中升级 谈(二)

    BLE 空中升级谈 -- CC2541 的产品开发中OAD注意事项(续) TI CC2541支持多个硬件,多个软件对它进行空中升级,可以有不同的组合,硬件有 编号 名称 Hex 用法 1 Cc2540 ...

  2. [国嵌攻略][059][2440-DMA程序设计]

    初始化DMA控制器 1.设置源地址 DISRC(0x4B000000)设置为发送数据的源地址,DISRCC0(0x4B0000004)设置为内存AHB总线,目的地址增长 2.设置目的地址 DIDST0 ...

  3. 基于 fireasy 构建的 asp.net core 示例

    最近花时间弄了一个关于fireasy使用的demo,已放到 github 上供大家研究,https://github.com/faib920/zero 该 demo 演示了如何使用 fireasy 创 ...

  4. zookeeper部署和运行

    环境准备: 操作系统,此处使用windows系统 Java运行环境,JDK1.6以上 下载对应操作系统zookeeper安装包zookeeper-x.x.x.tar.gz,下载地址:http://zo ...

  5. 用AngularJS实现对表格的增删改查(仅限前端)

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  6. Linux apache的运行用户和用户组

    我们在安装apache后,有时在上传文件的时候,提示没有权限或者是不可写,我们都会去查文件夹的权限. 通过ls -l /var/www/html/website可以很直观的看出我们文件和文件夹的权限, ...

  7. boostrap ajax表单验证提交

    =============================================================================== 1. 1 <link href=& ...

  8. myeclipse 奔溃解决办法

    myeclipse 突然奔溃 解决办法 JVM terminated.Exit code=1 意思是说java 虚拟机挂了,而不是myeclipse挂了. 进入myeclipse 目录 查看myecl ...

  9. js中this详解

    this对象是在闭包一节中提到的,书上的原话是:"this对象是在运行时基于函数的执行环境绑定的,在全局函数中,this等于window,而当函数作为某个对象的方法调用时,this等于那个对 ...

  10. IOS @proporty 关键字(一)retain strong

    @interface User : NSObject @property (nonatomic,retain) NSString* tRetain; @property (nonatomic,assi ...