Example #1
0
        public void AddCookie(WebClientCookie gameCookie)
        {
            if (_cookiesContainer == null)
            {
                _cookiesContainer = new CookieContainer();
            }

            Cookie cookie = new Cookie(gameCookie.Key, gameCookie.Value, "/", gameCookie.Domain.StartsWith("http://") ? gameCookie.Domain.Substring("http://".Length) : gameCookie.Domain);

            _cookiesContainer.Add(cookie);
        }
Example #2
0
        public List <WebClientCookie> GetCookies(string domain)
        {
            if (_cookiesContainer == null || _cookiesContainer.Count == 0)
            {
                return(new List <WebClientCookie>());
            }

            List <WebClientCookie> cookies = new List <WebClientCookie>();

            foreach (Cookie cookie in _cookiesContainer.GetCookies(new Uri(domain)))
            {
                WebClientCookie httpCookie = new WebClientCookie();
                httpCookie.Key    = cookie.Name;
                httpCookie.Value  = cookie.Value;
                httpCookie.Domain = cookie.Domain;
                cookies.Add(httpCookie);
            }

            return(cookies);
        }
Example #3
0
        internal bool OnLoggedInViaGameLoginBrowser(string loginUrl)
        {
            ClearSession();
            Uri loginUri;

            try
            {
                loginUri = new Uri(loginUrl);
            }
            catch
            {
                loginUri = null;
            }

            if (loginUri != null && (loginUri.Query.IndexOf("session=") != -1 || loginUri.Query.IndexOf(Constants.UrlParameters.PHPSESSID) != -1))
            {
                string session = "";

                try
                {
                    if (loginUri.Query.IndexOf(Constants.UrlParameters.SESSION) != -1)
                    {
                        session = loginUri.Query.Substring(loginUri.Query.IndexOf(Constants.UrlParameters.SESSION) + Constants.UrlParameters.SESSION.Length, Constants.SESSION_LENGTH);
                    }
                    else
                    {
                        session = loginUri.Query.Substring(loginUri.Query.IndexOf(Constants.UrlParameters.PHPSESSID) + Constants.UrlParameters.PHPSESSID.Length, Constants.SESSION_LENGTH);
                    }

                    List <WebClientCookie> cookies = new List <WebClientCookie>();

                    foreach (System.Net.Cookie cookie in EssentialUtil.GetUriCookieContainer(loginUri).GetCookies(loginUri))
                    {
                        if (cookie.Name.Contains("PHPSESSID") || cookie.Name.Contains("prsess") || cookie.Name.Contains("login"))
                        {
                            WebClientCookie httpCookie = new WebClientCookie();
                            httpCookie.Key    = cookie.Name;
                            httpCookie.Value  = cookie.Value;
                            httpCookie.Domain = cookie.Domain;
                            cookies.Add(httpCookie);
                        }
                    }
                    _httpClient.SetCookies(cookies);
                }
                catch
                {
                    session = string.Empty;
                }

                if (string.IsNullOrEmpty(session) || session.Length != Constants.SESSION_LENGTH)
                {
                    OnLoginFailed();
                    return(false);
                }
                else
                {
                    if (_session == null)
                    {
                        _session            = new GameSession();
                        _session.UniverseId = _universe.Id;
                    }
                    _session.Session = session;

                    if (IsSessionValid())
                    {
                        SetSession(session, _httpClient.GetCookies(_gameUri.GetDomain()), (int)Enums.SESSION_STATUS.VALID);
                        OnLoggedIn();
                        return(true);
                    }
                    else
                    {
                        OnLoginFailed();
                        return(false);
                    }
                }
            }
            else
            {
                OnErrorOccurred("Error occurred after login, game url is invalid.");
                return(false);
            }
        }