Esempio n. 1
0
        /// <summary>
        /// 用于单点登录判断,只判断,不执行动作
        /// </summary>
        /// <returns></returns>
        public static bool CheckLoginStatusWithOutAction(out string msg)
        {
            msg = "";
            bool flag = true;
            Dictionary <long, CookieInfo> dict = HttpContext.Current.Application["CookieCache"] as Dictionary <long, CookieInfo>;
            long userKey = Utility.GetLoginUserKey();

            if (userKey == 0)
            {
                flag = false;
                msg  = "太久没操作,请重新登陆!";
            }
            else
            {
                if (!dict.ContainsKey(userKey))
                {
                    flag = false;
                    msg  = "服务器不记得你了!";
                }
                else
                {
                    CookieInfo ci = dict[userKey];
                    if (ci.ValidKey != Utility.GetCookieKey())
                    {
                        flag = false;
                        msg  = "帐号已在别处登陆!";
                    }
                }
            }

            return(flag);
        }
Esempio n. 2
0
        public static CookieInfo GetCookieData(System.Web.HttpRequest request, bool checkURL = false)
        {
            CookieInfo result = null;

            if (checkURL == true)
            {
                string bopSession = request[GetCookieName()];

                if (bopSession != null)
                {
                    result = GetCookieData(bopSession);
                }
                else
                {
                    result = null;
                }
            }
            else
            {
                Boolean isCookiePresent = IsCookiePresent(request, GetCookieName());
                if (isCookiePresent == true)
                {
                    var cookie = request.Cookies.Get(GetCookieName());
                    result = GetCookieData(cookie);
                }
                else
                {
                    result = null;
                }
            }
            return(result);
        }
 public CookieBannerController()
 {
     using (var scope = Current.ScopeProvider.CreateScope())
     {
         cookieInfo = scope.Database.Fetch <CookieInfo>(string.Format("select *from CookieDisclaime")).FirstOrDefault();
         scope.Complete();
     }
 }
        /// <summary>
        /// Gets CookieInfos for display in CookieManager dialog.
        /// </summary>
        /// <returns>CookieInfo containing plugin name, cookie purpose description & cookie type</returns>
        public CookieInfo GetCookieInfo()
        {
            var cookieInfo = new CookieInfo
            {
                Name        = _localizationService.GetResource("Plugins.FriendlyName.SmartStore.GoogleAnalytics"),
                Description = _localizationService.GetResource("Plugins.Widgets.GoogleAnalytics.CookieInfo"),
                CookieType  = CookieType.Analytics
            };

            return(cookieInfo);
        }
Esempio n. 5
0
        /// <summary>
        /// Gets CookieInfos for display in CookieManager dialog.
        /// </summary>
        /// <returns>CookieInfo containing plugin name, cookie purpose description & cookie type</returns>
        public CookieInfo GetCookieInfo()
        {
            var cookieInfo = new CookieInfo
            {
                Name        = _services.Localization.GetResource("Plugins.FriendlyName.Widgets.AmazonPay"),
                Description = _services.Localization.GetResource("Plugins.Payments.AmazonPay.CookieInfo"),
                CookieType  = CookieType.Required
            };

            return(cookieInfo);
        }
Esempio n. 6
0
        public async Task <IActionResult> CookieInfoCreatePopup(CookieInfoModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            // Deserialize
            var ciList = JsonConvert.DeserializeObject <List <CookieInfo> >(_privacySettings.CookieInfos);

            if (ciList == null)
            {
                ciList = new List <CookieInfo>();
            }

            var cookieInfo = ciList
                             .Select(x => x)
                             .Where(x => x.Name.EqualsNoCase(model.Name))
                             .FirstOrDefault();

            if (cookieInfo != null)
            {
                // Remove item if it's already there.
                ciList.Remove(x => x.Name.EqualsNoCase(cookieInfo.Name));
            }

            cookieInfo = new CookieInfo
            {
                // TODO: Use MiniMapper
                CookieType       = model.CookieType,
                Name             = model.Name,
                Description      = model.Description,
                SelectedStoreIds = model.SelectedStoreIds
            };

            ciList.Add(cookieInfo);

            // Serialize
            _privacySettings.CookieInfos = JsonConvert.SerializeObject(ciList, Formatting.None);

            // Now apply & save again.
            await Services.Settings.ApplySettingAsync(_privacySettings, x => x.CookieInfos, 0);

            foreach (var localized in model.Locales)
            {
                await _localizedEntityService.ApplyLocalizedValueAsync(cookieInfo, x => x.Name, localized.Name, localized.LanguageId);

                await _localizedEntityService.ApplyLocalizedValueAsync(cookieInfo, x => x.Description, localized.Description, localized.LanguageId);
            }

            await _db.SaveChangesAsync();

            return(View(model));
        }
Esempio n. 7
0
 public static Session GetSessionData(CookieInfo cookieInfo)
 {
     if (cookieInfo != null)
     {
         return(GetSessionData(cookieInfo.SessionToken));
     }
     else
     {
         return(null);
     }
 }
Esempio n. 8
0
        /// <summary>
        /// 验证登录
        /// </summary>
        /// <returns></returns>
        public static CookieInfo Verification()
        {
            if (String.IsNullOrEmpty(Configer.HttpContext.Request.Headers["Token"].ToList().FirstOrDefault()))
            {
                return(null);
            }
            String     Token  = RSACryptionExtension.RSADecrypt(Configer.HttpContext.Request.Headers["Token"].ToString());
            CookieInfo Cookie = CacheFactory.Cache().GetCache <CookieInfo>(Token);

            SystemInfoKey.PrivateKey = Cookie == null ? null : Cookie.SysKey;
            return(Cookie);
        }
Esempio n. 9
0
 /// <summary>
 /// 写入cookie
 /// </summary>
 /// <param name="Cookie"></param>
 public static void WriteToken <T>(CookieInfo Cookie, T DTOInfo) where T : class, new()
 {
     Cookie.Token  = Guid.NewGuid().ToString();
     Cookie.SysKey = Guid.NewGuid().ToString();
     Cookie.ApiKey = RSACryptionExtension.RSAEncrypt(Configer.ApiKey + DateTime.Now.ToShortDateString());
     CacheFactory.Cache().WriteCache(Cookie, Cookie.Token, 2);
     CacheFactory.Cache().WriteCache <T>(DTOInfo, Cookie.SysKey, 2);
     //将加密后的Token和Key回传给客服端
     ResponseCookieInfo.RSAToKen  = RSACryptionExtension.RSAEncrypt(Cookie.Token);
     ResponseCookieInfo.RSAApiKey = Cookie.ApiKey;
     ResponseCookieInfo.RSASysKey = RSACryptionExtension.RSAEncrypt(Cookie.SysKey);
 }
Esempio n. 10
0
        void IRequestInspector.OnPrologueReceived()
        {
            var prologue = _request.Prologue;

            _entry.Request.Method      = prologue.Method;
            _entry.Request.Url         = prologue.Destination;
            _entry.Request.HttpVersion = prologue.Version;
            var uri = new Uri(prologue.Destination, UriKind.RelativeOrAbsolute);

            _entry.Request.QueryString = new List <NameValuePairInfo>()
            {
                new NameValuePairInfo()
                {
                    Name = "NotImplemented", Value = "Request.QueryString"
                }
            };

            foreach (var pair in prologue.Headers)
            {
                if (pair.Key.ToLowerInvariant() == "cookie")
                {
                    //http://www.nczonline.net/blog/2009/05/05/http-cookies-explained/
                    var text  = pair.Value;
                    var parts = text.Split(new char[] { ':' }, 2, StringSplitOptions.None);
                    if (parts.Length == 1)
                    {
                        continue;
                    }
                    text = parts[1];
                    var cookieStrings = text.Split(new string[] { "; " }, StringSplitOptions.RemoveEmptyEntries);
                    foreach (var cookieString in cookieStrings)
                    {
                        var cookieParts = cookieString.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                        parts = cookieParts[0].Split(new char[] { '=' }, 2, StringSplitOptions.None);
                        if (parts.Length < 2)
                        {
                            break;
                        }
                        var cookie = new CookieInfo()
                        {
                            Name  = parts[0],
                            Value = parts[1]
                        };
                        _entry.Request.Cookies.Add(cookie);
                    }
                    //TODO: Parse Cookies
                }
                _entry.Request.Headers.Add(new NameValuePairInfo()
                {
                    Name = pair.Key, Value = pair.Value
                });
            }
        }
Esempio n. 11
0
 public ObjectResultEx GovtLogin(RequestGovtInfo Param)
 {
     try
     {
         var    GovtAdmin = GovtWebService.GovtLogin(Param);
         string Code      = string.Empty;
         if (!Param.IsApp)
         {
             Code = CacheFactory.Cache().GetCache <string>("ValidateCode").Trim();
             if (GovtAdmin != null && Code.ToUpper().Equals(Param.ValidateCode.Trim().ToUpper()))
             {
                 CookieInfo cookie = new CookieInfo();
                 VerificationExtension.WriteToken(cookie, GovtAdmin);
                 return(ObjectResultEx.Instance(new { ResponseCookieInfo.RSAToKen, ResponseCookieInfo.RSAApiKey, ResponseCookieInfo.RSASysKey, GovtAdmin }, 1, RetrunMessge.SUCCESS, HttpCode.Success));
             }
             else if (!Code.ToUpper().Equals(Param.ValidateCode.Trim().ToUpper()))
             {
                 return(ObjectResultEx.Instance(null, -1, "验证码错误", HttpCode.NoAuth));
             }
             else
             {
                 return(ObjectResultEx.Instance(null, -1, "登录失败或账户冻结", HttpCode.NoAuth));
             }
         }
         else
         {
             if (GovtAdmin != null)
             {
                 CookieInfo cookie = new CookieInfo();
                 VerificationExtension.WriteToken(cookie, GovtAdmin);
                 return(ObjectResultEx.Instance(new { ResponseCookieInfo.RSAToKen, ResponseCookieInfo.RSAApiKey, ResponseCookieInfo.RSASysKey, GovtAdmin }, 1, RetrunMessge.SUCCESS, HttpCode.Success));
             }
             else if (GovtAdmin == null)
             {
                 return(ObjectResultEx.Instance(null, -1, "请检查用户名和密码是否正确", HttpCode.NoAuth));
             }
             else if (!Code.ToUpper().Equals(Param.ValidateCode.Trim().ToUpper()))
             {
                 return(ObjectResultEx.Instance(null, -1, "验证码错误", HttpCode.NoAuth));
             }
             else
             {
                 return(ObjectResultEx.Instance(null, -1, "登录失败或账户冻结", HttpCode.NoAuth));
             }
         }
     }
     catch (Exception)
     {
         return(ObjectResultEx.Instance(null, -1, "请输入验证码", HttpCode.FAIL));
     }
 }
Esempio n. 12
0
 protected void lbtnLogout_Click(object sender, EventArgs e)
 {
     try
     {
         CookieInfo.getCookieLogout();
         Response.Redirect("/BackOffice/AdminLogin.aspx", false);
     }
     catch (Exception ex)
     {
         #region [Error Logger] 로그인을 하는경우
         //ErrorLogger_Tx_Dac.GetErrorLogger_Tx_Dac().TB_TOTABBS_ERROR_LOGGER_INFO_INS_SP(ex, admin.MemberId, admin.MemberId);
         #endregion
     }
 }
Esempio n. 13
0
 public ObjectResultEx SystemLogin(RequestValidate LoginValidate)
 {
     try
     {
         ResponseAdmin SysAdmin = SystemService.SystemLogin(LoginValidate);
         string        Code     = string.Empty;
         if (!LoginValidate.IsApp)
         {
             Code = CacheFactory.Cache().GetCache <string>("ValidateCode").Trim();
             if (SysAdmin != null && Code.ToUpper().Equals(LoginValidate.ValidateCode.Trim().ToUpper()))
             {
                 CookieInfo cookie = new CookieInfo();
                 VerificationExtension.WriteToken(cookie, SysAdmin);
                 return(ObjectResultEx.Instance(new { ResponseCookieInfo.RSAToKen, ResponseCookieInfo.RSAApiKey, ResponseCookieInfo.RSASysKey, SysAdmin }, 1, RetrunMessge.SUCCESS, HttpCode.Success));
             }
             else if (!Code.ToUpper().Equals(LoginValidate.ValidateCode.Trim().ToUpper()))
             {
                 return(ObjectResultEx.Instance(null, -1, "验证码错误", HttpCode.NoAuth));
             }
             else
             {
                 return(ObjectResultEx.Instance(null, -1, "登录失败或账户冻结", HttpCode.NoAuth));
             }
         }
         else
         {
             if (SysAdmin != null)
             {
                 CookieInfo cookie = new CookieInfo();
                 VerificationExtension.WriteToken(cookie, SysAdmin);
                 return(ObjectResultEx.Instance(new { ResponseCookieInfo.RSAToKen, ResponseCookieInfo.RSAApiKey, ResponseCookieInfo.RSASysKey, SysAdmin }, 1, RetrunMessge.SUCCESS, HttpCode.Success));
             }
             else if (!Code.ToUpper().Equals(LoginValidate.ValidateCode.Trim().ToUpper()))
             {
                 return(ObjectResultEx.Instance(null, -1, "验证码错误", HttpCode.NoAuth));
             }
             else
             {
                 return(ObjectResultEx.Instance(null, -1, "登录失败或账户冻结", HttpCode.NoAuth));
             }
         }
     }
     catch (Exception)
     {
         return(ObjectResultEx.Instance(null, -1, "请输入验证码", HttpCode.FAIL));
     }
 }
Esempio n. 14
0
        private static void RefreshCookie(CookieInfo info)
        {
            var    compositeToken     = Guid.NewGuid().ToString();
            var    compositeEwName    = info.EarthwatcherName;
            var    compositeEwRole    = string.Join(",", info.Roles);
            var    expiresOn          = info.KeepLogged ? DateTime.UtcNow.AddDays(15) : DateTime.UtcNow.AddMinutes(30);
            var    compositeExpiresOn = expiresOn.ToString();
            string composite          = string.Format("{0}|{1}|{2}|{3}|{4}", compositeToken, compositeEwName, compositeEwRole, compositeExpiresOn, info.KeepLogged);

            string strToken = TextEncrytion.EncryptString(composite, Session.secretKey);

            HttpCookie cookie = new HttpCookie(Session.TOKENKEY);

            cookie.Value    = strToken;
            cookie.HttpOnly = false;
            cookie.Expires  = expiresOn;
            System.Web.HttpContext.Current.Response.Cookies.Set(cookie);
        }
Esempio n. 15
0
        void IResponseInspector.OnPrologueReceived()
        {
            var prologue = _response.Prologue;

            _entry.Response.HttpVersion = prologue.Version;
            _entry.Response.Status      = (int)prologue.StatusCode;
            _entry.Response.StatusText  = prologue.StatusDescription;

            foreach (var pair in prologue.Headers)
            {
                if (pair.Key.ToLowerInvariant() == "cookie")
                {
                    //http://www.nczonline.net/blog/2009/05/05/http-cookies-explained/
                    var text  = pair.Value;
                    var parts = text.Split(new char[] { ':' }, 2, StringSplitOptions.None);
                    if (parts.Length == 1)
                    {
                        continue;
                    }
                    text = parts[1];
                    var cookieStrings = text.Split(new string[] { "; " }, StringSplitOptions.RemoveEmptyEntries);
                    foreach (var cookieString in cookieStrings)
                    {
                        var cookieParts = cookieString.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                        parts = cookieParts[0].Split(new char[] { '=' }, 2, StringSplitOptions.None);
                        if (parts.Length < 2)
                        {
                            break;
                        }
                        var cookie = new CookieInfo()
                        {
                            Name  = parts[0],
                            Value = parts[1]
                        };
                        _entry.Response.Cookies.Add(cookie);
                    }
                    //TODO: Parse Cookies
                }
                _entry.Response.Headers.Add(new NameValuePairInfo()
                {
                    Name = pair.Key, Value = pair.Value
                });
            }
        }
Esempio n. 16
0
        void IRequestInspector.OnPrologueReceived()
        {
            var prologue = _request.Prologue;

            _entry.Request.Method = prologue.Method;
            _entry.Request.Url = prologue.Destination;
            _entry.Request.HttpVersion = prologue.Version;
            var uri = new Uri(prologue.Destination, UriKind.RelativeOrAbsolute);
            _entry.Request.QueryString = new List<NameValuePairInfo>()
                {
                    new NameValuePairInfo(){Name="NotImplemented", Value="Request.QueryString"}
                };

            foreach (var pair in prologue.Headers)
            {
                if (pair.Key.ToLowerInvariant() == "cookie")
                {
                    //http://www.nczonline.net/blog/2009/05/05/http-cookies-explained/
                    var text = pair.Value;
                    var parts = text.Split(new char[] {':'}, 2, StringSplitOptions.None);
                    if (parts.Length == 1)
                        continue;
                    text = parts[1];
                    var cookieStrings = text.Split(new string[] {"; "}, StringSplitOptions.RemoveEmptyEntries);
                    foreach (var cookieString in cookieStrings)
                    {
                        var cookieParts = cookieString.Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries);
                        parts = cookieParts[0].Split(new char[] {'='}, 2, StringSplitOptions.None);
                        if (parts.Length < 2)
                            break;
                        var cookie = new CookieInfo()
                            {
                                Name = parts[0],
                                Value = parts[1]
                            };
                        _entry.Request.Cookies.Add(cookie);
                    }
                    //TODO: Parse Cookies
                }
                _entry.Request.Headers.Add(new NameValuePairInfo(){Name=pair.Key,Value=pair.Value});
            }
        }
Esempio n. 17
0
        /// <summary>
        /// Gets CookieInfos for display in CookieManager dialog.
        /// </summary>
        /// <returns>CookieInfo containing plugin name, cookie purpose description & cookie type</returns>
        public IEnumerable <CookieInfo> GetCookieInfo()
        {
            var widget = _widgetService.LoadWidgetBySystemName("SmartStore.GoogleAnalytics");

            if (!widget.IsWidgetActive(_widgetSettings))
            {
                return(null);
            }

            var cookieInfo = new CookieInfo
            {
                Name        = _localizationService.GetResource("Plugins.FriendlyName.SmartStore.GoogleAnalytics"),
                Description = _localizationService.GetResource("Plugins.Widgets.GoogleAnalytics.CookieInfo"),
                CookieType  = CookieType.Analytics
            };

            return(new List <CookieInfo> {
                cookieInfo
            });
        }
Esempio n. 18
0
        public CookieInfo User_GetCookie(int userID)
        {
            if (!CheckClient())
            {
                return(null);
            }

            CookieInfo cookie = new CookieInfo();
            AuthUser   user   = UserBO.Instance.GetAuthUser(userID);

            if (user != null)
            {
                cookie.Value  = UserBO.Instance.EncodeCookie(userID, user.Password);
                cookie.Name   = UserBO.cookieKey_User;
                cookie.Domain = CookieUtil.CookieDomain;

                return(cookie);
            }
            return(null);
        }
Esempio n. 19
0
        public IEnumerable <CookieInfo> GetCookieInfo()
        {
            var isActive = _paymentService.Value.IsPaymentMethodActive("Payments.PayPalPlus", _services.StoreContext.CurrentStore.Id);

            if (!isActive)
            {
                return(null);
            }

            var cookieInfo = new CookieInfo
            {
                Name        = _services.Localization.GetResource("Plugins.FriendlyName.Widgets.PayPal"),
                Description = _services.Localization.GetResource("Plugins.SmartStore.PayPal.CookieInfo"),
                CookieType  = CookieType.Required
            };

            return(new List <CookieInfo> {
                cookieInfo
            });
        }
Esempio n. 20
0
        /// <summary>
        /// Gets CookieInfos for display in CookieManager dialog.
        /// </summary>
        /// <returns>CookieInfo containing plugin name, cookie purpose description & cookie type</returns>
        public IEnumerable <CookieInfo> GetCookieInfo()
        {
            var widget = _widgetService.LoadWidgetBySystemName("Widgets.AmazonPay");

            if (!widget.IsWidgetActive(_widgetSettings))
            {
                return(null);
            }

            var cookieInfo = new CookieInfo
            {
                Name        = _services.Localization.GetResource("Plugins.FriendlyName.Widgets.AmazonPay"),
                Description = _services.Localization.GetResource("Plugins.Payments.AmazonPay.CookieInfo"),
                CookieType  = CookieType.Required
            };

            return(new List <CookieInfo> {
                cookieInfo
            });
        }
Esempio n. 21
0
        protected void btnLogin_Click(object sender, EventArgs e)
        {
            try
            {
                Login_NTx_Dac oView = new Login_NTx_Dac();

                string strTxtLoginId = string.Empty;
                string strTxtLoginPw = string.Empty;

                if (Request.Form["TxtLoginId"] != null)
                {
                    strTxtLoginId = Request.Form["TxtLoginId"].ToString();
                }

                if (Request.Form["TxtLoginPw"] != null)
                {
                    strTxtLoginPw = Request.Form["TxtLoginPw"].ToString();
                }

                LoginBean Bean = oView.TOTALBBS_ADMIN_SEL(strTxtLoginId, strTxtLoginPw);

                if (!string.IsNullOrEmpty(Bean.strAdminId) && Bean.chrCheckLogin.Equals("0"))
                {
                    CookieInfo AdminInfo = new CookieInfo();
                    CookieInfo.setAdminCookieSetting(Bean, ".totalbbs.com");

                    StringBuilder sbLoginOk = new StringBuilder();
                    sbLoginOk.Append("alert('" + LoginBeen + "');");
                    sbLoginOk.Append("location.href=\"/BackOffice/Board/BoardList.aspx\"");
                    this.LoginOK_Process(sbLoginOk);
                }
            }
            catch (Exception ex)
            {
                StringBuilder sbLoginError = new StringBuilder();
                sbLoginError.Append("alert('" + LoginFailed + "');");
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "LoginError", sbLoginError.ToString(), true);

                return;
            }
        }
Esempio n. 22
0
 public ObjectResultEx Login(RequestGovtInfo Param)
 {
     try
     {
         var    GovtAdmin = GovtWebService.GovtLogin(Param);
         string Code      = string.Empty;
         if (GovtAdmin != null)
         {
             CookieInfo cookie = new CookieInfo();
             VerificationExtension.WriteToken(cookie, GovtAdmin);
             return(ObjectResultEx.Instance(new { ResponseCookieInfo.RSAToKen, ResponseCookieInfo.RSAApiKey, ResponseCookieInfo.RSASysKey, GovtAdmin }, 1, RetrunMessge.SUCCESS, HttpCode.Success));
         }
         else
         {
             return(ObjectResultEx.Instance(null, -1, "登录失败或账户冻结", HttpCode.NoAuth));
         }
     }
     catch (Exception)
     {
         return(ObjectResultEx.Instance(null, -1, "请检查账号和密码是否正确", HttpCode.FAIL));
     }
 }
Esempio n. 23
0
        private void WriteCookie(int id)
        {
            var cookieInfo = new CookieInfo {
                UserId = id
            };
            var        version    = 1;
            var        name       = id.ToString();
            var        expire     = DateTime.Now.AddDays(30);
            var        userData   = JsonConvert.SerializeObject(cookieInfo);
            var        ticket     = new FormsAuthenticationTicket(version, name, DateTime.Now, expire, true, userData);
            var        cookieName = ConfigurationManager.AppSettings["AdminAuthCookieName"];
            var        domain     = ConfigurationManager.AppSettings["CookieDomain"].ToString();
            var        value      = FormsAuthentication.Encrypt(ticket);
            HttpCookie cookie     = new HttpCookie(cookieName)
            {
                Domain  = domain,
                Value   = value,
                Expires = expire,
            };

            Response.Cookies.Add(cookie);
        }
Esempio n. 24
0
        public static CookieInfo GetCookieInfo()
        {
            CookieInfo info = new CookieInfo();

            try
            {
                HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies[Session.TOKENKEY];
                if (cookie == null)
                {
                    return(info);
                }

                string   cookieCompositeValue = cookie.Value;
                string   composite            = TextEncrytion.DecryptString(cookieCompositeValue, Session.secretKey);
                string[] compositeValues      = composite.Split('|');

                info.LoginToken       = new Guid(compositeValues[0]);
                info.EarthwatcherName = compositeValues[1];
                info.Roles            = compositeValues[2].Split(',');
                info.ExpiresOn        = DateTime.Parse(compositeValues[3]);
                info.KeepLogged       = Convert.ToBoolean(compositeValues[4]);

                if ((DateTime.UtcNow - info.ExpiresOn).Minutes > 1)
                {
                    //Borrar cookie
                    DeleteCookie();
                    return(new CookieInfo());
                }
                else
                {
                    RefreshCookie(info);
                }
            }
            catch
            {
            }

            return(info);
        }
Esempio n. 25
0
        public static CookieInfo GetCookieData(System.Web.HttpRequest request, bool checkURL = false)
        {
            CookieInfo result = null;

            if (checkURL == true)
            {
                string bopSession = null;

                if (request.UrlReferrer.AbsoluteUri.Contains("="))
                {
                    bopSession = request.UrlReferrer.AbsoluteUri.Substring(request.UrlReferrer.AbsoluteUri.IndexOf('=') + 1);
                }
                //string bopSession = request[GetCookieName()];

                if (bopSession != null)
                {
                    result = GetCookieData(bopSession);
                }
                else
                {
                    result = null;
                }
            }
            else
            {
                Boolean isCookiePresent = IsCookiePresent(request, GetCookieName());
                if (isCookiePresent == true)
                {
                    var cookie = request.Cookies.Get(GetCookieName());
                    result = GetCookieData(cookie);
                }
                else
                {
                    result = null;
                }
            }
            return(result);
        }
Esempio n. 26
0
        void IResponseInspector.OnPrologueReceived()
        {
            var prologue = _response.Prologue;

            _entry.Response.HttpVersion = prologue.Version;
            _entry.Response.Status = (int)prologue.StatusCode;
            _entry.Response.StatusText = prologue.StatusDescription;

            foreach (var pair in prologue.Headers)
            {
                if (pair.Key.ToLowerInvariant() == "cookie")
                {
                    //http://www.nczonline.net/blog/2009/05/05/http-cookies-explained/
                    var text = pair.Value;
                    var parts = text.Split(new char[] { ':' }, 2, StringSplitOptions.None);
                    if (parts.Length == 1)
                        continue;
                    text = parts[1];
                    var cookieStrings = text.Split(new string[] { "; " }, StringSplitOptions.RemoveEmptyEntries);
                    foreach (var cookieString in cookieStrings)
                    {
                        var cookieParts = cookieString.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                        parts = cookieParts[0].Split(new char[] { '=' }, 2, StringSplitOptions.None);
                        if (parts.Length < 2)
                            break;
                        var cookie = new CookieInfo()
                        {
                            Name = parts[0],
                            Value = parts[1]
                        };
                        _entry.Response.Cookies.Add(cookie);
                    }
                    //TODO: Parse Cookies
                }
                _entry.Response.Headers.Add(new NameValuePairInfo() { Name = pair.Key, Value = pair.Value });
            }
        }
Esempio n. 27
0
        public static CookieInfo GetCookieInfo()
        {
            CookieInfo info = new CookieInfo();

            try
            {
                HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies[Session.TOKENKEY];
                if (cookie == null) return info;

                string cookieCompositeValue = cookie.Value;
                string composite = TextEncrytion.DecryptString(cookieCompositeValue, Session.secretKey);
                string[] compositeValues = composite.Split('|');

                info.LoginToken = new Guid(compositeValues[0]);
                info.EarthwatcherName = compositeValues[1];
                info.Roles = compositeValues[2].Split(',');
                info.ExpiresOn = DateTime.Parse(compositeValues[3]);
                info.KeepLogged = Convert.ToBoolean(compositeValues[4]);

                if ((DateTime.UtcNow - info.ExpiresOn).Minutes > 1)
                {
                    //Borrar cookie 
                    DeleteCookie();
                    return new CookieInfo();
                }
                else
                {
                    RefreshCookie(info);
                }
            }
            catch
            {
            }

            return info;
        }
Esempio n. 28
0
        private static void RefreshCookie(CookieInfo info)
        {
            var compositeToken = Guid.NewGuid().ToString();
            var compositeEwName = info.EarthwatcherName;
            var compositeEwRole = string.Join(",", info.Roles);
            var expiresOn = info.KeepLogged ? DateTime.UtcNow.AddDays(15) : DateTime.UtcNow.AddMinutes(30);
            var compositeExpiresOn = expiresOn.ToString();
            string composite = string.Format("{0}|{1}|{2}|{3}|{4}", compositeToken, compositeEwName, compositeEwRole, compositeExpiresOn, info.KeepLogged);

            string strToken = TextEncrytion.EncryptString(composite, Session.secretKey);

            HttpCookie cookie = new HttpCookie(Session.TOKENKEY);
            cookie.Value = strToken;
            cookie.HttpOnly = false;
            cookie.Expires = expiresOn;
            System.Web.HttpContext.Current.Response.Cookies.Set(cookie);

        }
Esempio n. 29
0
        /// <summary>
        /// 用于单点登录判断,并执行响应动作
        /// </summary>
        /// <returns></returns>
        public static bool CheckLoginStatus()
        {
            bool   flag     = true;
            string redirect = null;
            Dictionary <long, CookieInfo> dict = HttpContext.Current.Application["CookieCache"] as Dictionary <long, CookieInfo>;
            long userKey = Utility.GetLoginUserKey();

            if (userKey == 0)
            {
                //跳转登录页
                redirect = "/home/login";
                flag     = false;
                //if (!CanAnonymous())
                //{
                //    //跳转登录页
                //    redirect = "/home/login?ReturnUrl=" + HttpUtility.UrlEncode(HttpContext.Current.Request.RawUrl);
                //    flag = false;
                //}
            }
            else
            {
                if (!dict.ContainsKey(userKey))
                {
                    Utility.ClearCookie(Utility.LoginCookieName);
                    //跳转登录页
                    redirect = "/home/login";
                    flag     = false;
                    //if (!CanAnonymous())
                    //{
                    //    //跳转登录页
                    //    redirect = "/home/login?ReturnUrl=" + HttpUtility.UrlEncode(HttpContext.Current.Request.RawUrl);
                    //    flag = false;
                    //}
                }
                else
                {
                    CookieInfo ci = dict[userKey];
                    if (ci.ValidKey == Utility.GetCookieKey())
                    {
                        HttpContext.Current.Application.Lock();
                        ci.LastTime = DateTime.Now;
                        UpdateLoginCookieTime();
                        HttpContext.Current.Application.UnLock();
                    }
                    else
                    {
                        //跳转登录页
                        Utility.ClearCookie(Utility.LoginCookieName);
                        //跳转登录页
                        redirect = "/home/login";
                        flag     = false;
                        //if (!CanAnonymous())
                        //{
                        //    //跳转登录页
                        //    redirect = "/home/login?ReturnUrl=" + HttpUtility.UrlEncode(HttpContext.Current.Request.RawUrl);
                        //    flag = false;
                        //}
                    }
                }
            }
            if (redirect != null)
            {
                Utility.Redirect(HttpContext.Current.Response, redirect);
            }
            return(flag);
        }
Esempio n. 30
0
        /// <summary>
        /// 设置登录
        /// </summary>
        /// <param name="user"></param>
        public static int SetLogin(UserEntity user)
        {
            //Utility.SetUserRight(user, user.RoleKey);
            //Utility.SetUserObjKey(user);
            int result = 1;

            HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.BufferOutput = true;
            //先删除Cookie
            ClearCookie(LoginCookieName);
            //再新建Cookie
            HttpCookie cookie = CreateCookie(LoginCookieName);

            cookie.Expires = DateTime.Now.AddMinutes(CommonConfig.Current.LoginCookieVaildTime);
            cookie.Values.Add("user_key", user.RowKey.ToString());
            //cookie.Values.Add("role_key", user.RoleKey.ToString());
            //cookie.Values.Add("role_kind", user.RoleKind);
            //cookie.Values.Add("areas", user.AttachPropDict["areas"]);
            //cookie.Values.Add("menus", user.AttachPropDict["menus"]);
            //cookie.Values.Add("obj_key", user.AttachPropDict["obj_key"]);
            cookie.Values.Add("nick_name", HttpUtility.UrlEncode(user.NickName));
            cookie.Values.Add("head_img", HttpUtility.UrlEncode(user.HeadImg));
            cookie.Values.Add("cookie_key", Guid.NewGuid().ToString());
            HttpContext.Current.Response.AppendCookie(cookie);

            Dictionary <long, CookieInfo> dict = HttpContext.Current.Application["CookieCache"] as Dictionary <long, CookieInfo>;

            if (!dict.ContainsKey(user.RowKey))
            {
                CookieInfo ci = new CookieInfo();
                ci.UserKey  = user.RowKey;
                ci.ValidKey = Utility.GetCookieKey();
                ci.LastTime = DateTime.Now;

                HttpContext.Current.Application.Lock();
                dict[user.RowKey] = ci;
                HttpContext.Current.Application.UnLock();

                //if (dict.Count < CommonConfig.Current.MaxOnlineUser)
                //{
                //    HttpContext.Current.Application.Lock();
                //    dict[user.RowKey] = ci;
                //    HttpContext.Current.Application.UnLock();
                //}
                //else
                //{
                //    ClearCookie(LoginCookieName);
                //    result = 1006;
                //}
            }
            else
            {
                HttpContext.Current.Application.Lock();
                CookieInfo ci = dict[user.RowKey];
                ci.ValidKey       = Utility.GetCookieKey();
                ci.LastTime       = DateTime.Now;
                dict[user.RowKey] = ci;
                HttpContext.Current.Application.UnLock();
            }

            return(result);
        }
Esempio n. 31
0
 public string get_cookie_info(CookieInfo info)
 {
     return(_cookies.Get(CookieName).Value);
 }
Esempio n. 32
0
 public string get_cookie_info(CookieInfo info)
 {
     return _cookies.Get(CookieName).Value;
 }