zoukankan      html  css  js  c++  java
  • 利用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)//大于某个时间点,返回一个约定的状态码,让手机作相应的处理

        { 作相应的处理  }

  • 相关阅读:
    vue04-动画、组件
    vue02—— 动画、组件、组件之间的数据通信
    webpack使用
    Promise
    css 尾巴
    js尾巴
    Python字符串格式转换
    CentOS 6.5下Redmine的安装配置
    gem Errno::ECONNRESET: Connection reset by peer
    MySQL几个重要的目录
  • 原文地址:https://www.cnblogs.com/ChiYue/p/3459616.html
Copyright © 2011-2022 走看看