Beispiel #1
0
        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();
            }
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
        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();
        }
Beispiel #4
0
        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);
        }
Beispiel #6
0
        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));
        }
Beispiel #7
0
 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));
 }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        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"));
            }
        }
Beispiel #10
0
        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);
        }
Beispiel #11
0
        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);
        }
Beispiel #12
0
        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));
        }
Beispiel #13
0
        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);
        }
Beispiel #14
0
 protected virtual bool SaveToDb(IPlatSessionData session)
 {
     return(false);
 }
Beispiel #15
0
 protected virtual bool LoadFromDb(IPlatSessionData session)
 {
     return(false);
 }
Beispiel #16
0
 public static string ToCookieString(IPlatSessionData data)
 {
     return(string.Format("{0}${1}${2}", data.Uid, data.LastSiteId, data.AuthArgs));
 }
Beispiel #17
0
 protected virtual bool ValidateSession(IPlatSessionData session)
 {
     return(!string.IsNullOrEmpty(session.Uid));
 }