and*_*e91 3 c# datetime compare
我想看看自创建令牌对象以来是否已经过去了一小时。我在创建它时使用 datetime.utcnow 。
我尝试过 datetime.compare,并直接比较两个日期时间,但无论我做什么,它都会得到相同的结果..(不是我想要的)
如果自创建以来已经过了一小时,则令牌应该被“消耗”,因此它不再有效。
令牌对象
public int ID { get; set; }
public int UserId { get; set; }
public string Token { get; set; }
public System.DateTime Time_stamp { get; set; }
public Nullable<bool> Consumed { get; set; }
Run Code Online (Sandbox Code Playgroud)
我的验证方法
public bool IsValidToken(string token)
{
var tokenEntity = this.GetAll().Where(x => x.Consumed == false && x.Token == token).FirstOrDefault();
if (tokenEntity != null)
{
var tokenDate = tokenEntity.Time_stamp;
var machineDate = DateTime.UtcNow;
var result = DateTime.Compare(tokenDate, machineDate.AddHours(1));
if (result > 0)
{
tokenEntity.Consumed = true;
this.Update(tokenEntity);
return false;
}
else
{
return true;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
相反,DateTime.Compare()您可以减去两个DateTime并得到结果的总小时数DateTime。
就像是,
var result = (DateTime.UtcNow - tokenEntity.Time_stamp).TotalHours;
if(result > 1)
{
//Do your business logic for expiring token
}
else
//Your business logic
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6991 次 |
| 最近记录: |