/// <summary> /// 生成url上面的Ticket,一般只有几秒有效期 /// </summary> /// <param name="userId"></param> /// <returns></returns> public string GenerateTicket(string userId) { string sourceString = DateTime.Now.ToString("yyyy-MM-dd") + userId + DateTime.Now.ToString("HH:mm:ss"); string ticket = SymmetricEncryptHelper.AesEncode(sourceString, secretKey); return(Base64SecureURL.Encode(ticket)); }
/// <summary> /// 解析url上面的Ticket /// </summary> /// <param name="ticket"></param> /// <returns>用户id,如果过期就返回""</returns> public string DecodeTicket(string ticket) { string sourceString = SymmetricEncryptHelper.AesDecode(Base64SecureURL.Decode(ticket), secretKey); string userId = sourceString.Substring(10, sourceString.Length - 18); DateTime ticketDateTime = DateTime.Parse(sourceString.Substring(0, 10) + " " + sourceString.Substring(10 + userId.Length)); var diff = DateTime.Now - ticketDateTime; if (diff.TotalSeconds > ticketTime) { return(""); } return(userId); }