public static void InitSession(IPlatSessionData data, string colUid, params string[] colArgs) { data.LastSiteId = SiteMapCache.SiteId; var nvc = HttpContext.Current.Request.QueryString; if (null == nvc) { return; } data.Uid = nvc[colUid] ?? string.Empty; if (null == colArgs || colArgs.Length == 0) { data.AuthArgs = HttpContext.Current.Request.Url.Query.TrimStart('?'); } else { var sb = new StringBuilder(); foreach (var col in colArgs) { sb.AppendFormat("{0}{1}={2}", sb.Length == 0 ? "" : "&", col, nvc[col] ?? string.Empty); } data.AuthArgs = sb.ToString(); sb.Clear(); } }
void redirectBack(IPlatSessionData platSession) { LogHelper.Insert(string.Format("RedirectBack rawUrl:{0},data:{1}", Request.Url.PathAndQuery, platSession), LogType.Error); var plat = SiteMapCache.Instance().GetPlatConfig(); if (null != plat) { HttpContext.Current.Response.Redirect(plat.PlatMainUrl, false); } }
void redirect(AllSitemapEntity site, IPlatSessionData platSession) { string url = string.Format(site.SiteLoginUrl, platSession.AuthArgs); if (!string.IsNullOrEmpty(ConfigurationManager.AppSettings["TraceNav"])) { LogHelper.Insert(string.Format("Redirect rawUrl:{0},newUrl:{1}", Request.Url.PathAndQuery, url), LogType.Error); } HttpContext.Current.Response.RedirectPermanent(url, false); HttpContext.Current.ApplicationInstance.CompleteRequest(); }
protected virtual bool SaveToSession(IPlatSessionData session) { string value = session.ToPlatString((int)EnumPlatSessionMode.Session); if (string.IsNullOrEmpty(value)) { return(false); } HttpContext.Current.Session[PlatCookieName] = value; return(true); }
protected override bool ValidateSession(IPlatSessionData session) { var data = session as WanwanSessionInfo; if (null == data || string.IsNullOrEmpty(data.SessionKey)) { return(false); } data.ErrorCode = WebErrorCode.OK; return(true); }
protected virtual bool LoadFromSession(IPlatSessionData session) { var obj = HttpContext.Current.Session[PlatCookieName]; if (null == obj) { return(false); } string value = obj.ToString(); return(session.FromPlatString(value, (int)EnumPlatSessionMode.Session)); }
public bool LoadSession(IPlatSessionData session, int sessionMode = -1) { if (sessionMode < 0) { sessionMode = this._sessionMode; } if (CanSessionFlag(sessionMode) && LoadFromSession(session) || LoadFromCookie(session)) { return(true); } return(CanDbFlag(sessionMode) && LoadFromDb(session)); }
public static bool FromCookieString(IPlatSessionData data, string value) { if (string.IsNullOrEmpty(value) || null == data) { return(false); } var splits = value.Split('$'); if (splits.Length < 3) { return(false); } data.Uid = splits[0]; data.LastSiteId = splits[1]; data.AuthArgs = splits[2]; return(true); }
string GetNavApiUrl(IPlatSessionData platSession, bool navFlag) { string url = HttpContext.Current.Request.Url.AbsoluteUri; int idx = url.LastIndexOf(@"/"); if (idx > 0) { url = url.Substring(0, idx + 1); } if (navFlag) { return(string.Format("{0}api.ashx?action=sitelist&{1}", url, platSession.AuthArgs).Replace('&', '|')); } else { return(string.Concat(url, "api.ashx?action=sitelist")); } }
public bool SaveSession(IPlatSessionData session, int sessionMode = -1) { if (sessionMode < 0) { sessionMode = this._sessionMode; } bool val = SaveToCookie(session); if (CanSessionFlag(sessionMode)) { val |= SaveToSession(session); } if (CanDbFlag(sessionMode)) { val |= SaveToDb(session); } return(val); }
protected virtual bool SaveToCookie(IPlatSessionData session) { string value = session.ToPlatString((int)EnumPlatSessionMode.Cookie); if (string.IsNullOrEmpty(value)) { return(false); } var cookie = new HttpCookie(PlatCookieName); cookie.Value = CryptoUtil.ToBase64(value); cookie.Expires = DateTime.Now.AddMinutes(PlatExpireInMinutes); if (!string.IsNullOrEmpty(_shareDomain)) { cookie.Domain = _shareDomain; } HttpContext.Current.Response.Cookies.Set(cookie); return(true); }
protected virtual bool LoadFromCookie(IPlatSessionData session) { HttpCookie obj = null; string[] keys = HttpContext.Current.Response.Cookies.AllKeys; if (null != keys && keys.Contains(PlatCookieName)) { obj = HttpContext.Current.Response.Cookies[PlatCookieName]; } if (null == obj || string.IsNullOrEmpty(obj.Value)) { obj = HttpContext.Current.Request.Cookies[PlatCookieName]; } if (null == obj || string.IsNullOrEmpty(obj.Value)) { return(false); } string value = CryptoUtil.FromBase64(obj.Value); return(session.FromPlatString(value, (int)EnumPlatSessionMode.Cookie)); }
protected override bool ValidateSession(IPlatSessionData session) { var data = session as WyxSessionInfo; if (null == data) { return(false); } if (!data.ValidateValue() || string.IsNullOrEmpty(data.Uid)) { data.ErrorCode = WebErrorCode.RequiredArgs; return(false); } string secret = WyxCache.AppCfg.AppSecret; if (string.IsNullOrEmpty(data.Signature) || !CheckSignature(data, secret)) { data.ErrorCode = WebErrorCode.ErrorSignature; LogHelper.Insert(string.Format("InvalidSession:{0}", data), LogType.Error); return(false); } data.ErrorCode = WebErrorCode.OK; return(true); }
protected virtual bool SaveToDb(IPlatSessionData session) { return(false); }
protected virtual bool LoadFromDb(IPlatSessionData session) { return(false); }
public static string ToCookieString(IPlatSessionData data) { return(string.Format("{0}${1}${2}", data.Uid, data.LastSiteId, data.AuthArgs)); }
protected virtual bool ValidateSession(IPlatSessionData session) { return(!string.IsNullOrEmpty(session.Uid)); }