コード例 #1
0
        /// <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));
        }
コード例 #2
0
        /// <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);
        }