Esempio n. 1
0
        public static RelativeTicket DecryptFromString(string ticketString)
        {
            ExceptionHelper.CheckStringIsNullOrEmpty(ticketString, "ticketString");

            byte[]         data    = Convert.FromBase64String(ticketString);
            string         decData = RelativeTicketSettings.GetConfig().Encryptor.DecryptString(data);
            RelativeTicket ticket  = (RelativeTicket)JSONSerializerExecute.DeserializeObject(decData, typeof(RelativeTicket));

            return(ticket);
        }
Esempio n. 2
0
		/// <summary>
		/// 根据上下文环境生成一个Ticket
		/// </summary>
		/// <returns></returns>
		public static RelativeTicket GenerateTicket(string target)
		{
			RelativeTicket ticket = new RelativeTicket();

			if (DeluxePrincipal.IsAuthenticated)
				ticket.userID = DeluxeIdentity.CurrentUser.ID;

			ticket.clientIP = EnvironmentHelper.GetClientIP();
			ticket.clickTime = DateTime.UtcNow;
			ticket.targetUri = target;

			if (EnvironmentHelper.Mode == InstanceMode.Web)
				ticket.uriReferer = HttpContext.Current.Request.Url.ToString();

			return ticket;
		}
Esempio n. 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="obj"></param>
        /// <returns></returns>
        public override bool Equals(object obj)
        {
            bool result = false;

            RelativeTicket objParam = (RelativeTicket)obj;

            TimeSpan tSpan = objParam.ClickTime - this.ClickTime;

            if (objParam.ClientIP == this.ClientIP && objParam.UserID == this.UserID &&
                tSpan.CompareTo(RelativeTicketSettings.GetConfig().UrlTransferTimeout) <= 0)
            {
                result = true;
            }

            return(result);
        }
Esempio n. 4
0
        public static string GetRequestTicketUrl(string requestUrl, string redirectUrl)
        {
            string result = requestUrl;

            if (result.IndexOf("?") >= 0)
            {
                result += "&";
            }
            else
            {
                result += "?";
            }

            RelativeTicket ticket = RelativeTicket.GenerateTicket(redirectUrl);

            return(result + "requestTicket=" + HttpUtility.UrlEncode(ticket.EncryptToString()));
        }
Esempio n. 5
0
        /// <summary>
        /// 根据上下文环境生成一个Ticket
        /// </summary>
        /// <returns></returns>
        public static RelativeTicket GenerateTicket(string target)
        {
            RelativeTicket ticket = new RelativeTicket();

            if (DeluxePrincipal.IsAuthenticated)
            {
                ticket.userID = DeluxeIdentity.CurrentUser.ID;
            }

            ticket.clientIP  = EnvironmentHelper.GetClientIP();
            ticket.clickTime = DateTime.UtcNow;
            ticket.targetUri = target;

            if (EnvironmentHelper.Mode == InstanceMode.Web)
            {
                ticket.uriReferer = HttpContext.Current.Request.Url.ToString();
            }

            return(ticket);
        }