private bool DoLogin(NijieLoginInfo info) { IsLoggedIn = false; ExtendedWebClient client = new ExtendedWebClient(); NameValueCollection loginInfo = new NameValueCollection(); loginInfo.Add("email", info.UserName); loginInfo.Add("password", info.Password); if (info.RememberLogin) { loginInfo.Add("save", "on"); } loginInfo.Add("ticket", info.Ticket); loginInfo.Add("url", info.ReturnUrl); var result = client.UploadValues(Util.FixUrl(NijieConstants.NIJIE_LOGIN_URL2, ROOT_DOMAIN, Properties.Settings.Default.UseHttps), "POST", loginInfo); //String data = Encoding.UTF8.GetString(result); var location = client.Response.ResponseUri.ToString(); if (!String.IsNullOrWhiteSpace(location)) { if (location.Contains(@"//nijie.info/login.php?")) { IsLoggedIn = false; } else { IsLoggedIn = true; } } var uri = new Uri(Util.FixUrl("//nijie.info", ROOT_DOMAIN, Properties.Settings.Default.UseHttps)); ExtendedWebClient.CookieJar.Add(uri, new Cookie("R18", "1")); var cookies = ExtendedWebClient.CookieJar.GetCookies(uri); foreach (Cookie item in cookies) { //Cookie: NIJIEIJIEID=lp1ffmjc9gi7a3u9qkj8p566u3 if (item.Name == "NIJIEIJIEID") { NijieSessionID = item.Value; item.Expires = DateTime.MaxValue; break; } } PrintCookie("Login:"); return(IsLoggedIn); }
private NijieLoginInfo PrepareLoginInfo(string userName, string password) { ExtendedWebClient client = new ExtendedWebClient(); // not really used var uri = new Uri(Util.FixUrl("//nijie.info", ROOT_DOMAIN, Properties.Settings.Default.UseHttps)); var tick = ((int)Util.DateTimeToUnixTimestamp(DateTime.Now)).ToString(); ExtendedWebClient.CookieJar.Add(uri, new Cookie("nijie_token_secret", tick)); ExtendedWebClient.CookieJar.Add(uri, new Cookie("nijie_token", tick)); NijieLoginInfo info = new NijieLoginInfo() { UserName = userName, Password = password, ReturnUrl = "", Ticket = "", RememberLogin = true }; HtmlDocument doc = getPage(Util.FixUrl(NijieConstants.NIJIE_LOGIN_URL, ROOT_DOMAIN, Properties.Settings.Default.UseHttps)).Item1; var tickets = doc.DocumentNode.SelectNodes("//input[@name='ticket']"); if (tickets != null && tickets.Count > 0) { info.Ticket = tickets[0].Attributes["value"].Value; } var returnUrls = doc.DocumentNode.SelectNodes("//input[@name='url']"); if (returnUrls != null && returnUrls.Count > 0) { info.ReturnUrl = returnUrls[0].Attributes["value"].Value; } PrintCookie("Prepare Login:"); return(info); }