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); }
/// <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; }
/// <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); }
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())); }
/// <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); }