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