Пример #1
0
        public bool Login()
        {
            PasswordHash     = null;
            Cfduid           = null;
            SankakuSessionId = null;
            ActualUsername   = null;
            try
            {
                HttpWebRequest CookieReq = (HttpWebRequest)WebRequest.Create("https://chan.sankakucomplex.com/");
                CookieReq.Method = "GET";
                CookieReq.Headers.Add("Upgrade-Insecure-Requests: 1");
                CookieReq.Headers.Add("Accept-Encoding: gzip, deflate, sdch, br");
                CookieReq.Headers.Add("Accept-Language: en-US,en;q=0.8,sl;q=0.6");
                CookieReq.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36";
                CookieReq.Accept    = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
                CookieReq.Timeout   = 18 * 1000;

                HttpWebResponse CookieResponse   = (HttpWebResponse)CookieReq.GetResponse();
                string          CookieValueValue = CookieResponse.GetResponseHeader("Set-Cookie");
                CookieResponse.Close();
                Cfduid = new Regex(@"__cfduid=(.*?);").Match(CookieValueValue).Groups[1].Value;

                HttpWebRequest Request = (HttpWebRequest)WebRequest.Create("https://chan.sankakucomplex.com/user/authenticate");
                Request.Method            = "POST";
                Request.AllowAutoRedirect = false;
                Request.Headers.Add("Origin", "https://chan.sankakucomplex.com");
                Request.Headers.Add("Cache-Control", "max-age=0");
                Request.Headers.Add("Upgrade-Insecure-Requests", "1");
                Request.Headers.Add("Accept-Encoding", "gzip, deflate, br");
                Request.Headers.Add("Accept-Language", "en-US,en;q=0.8,sl;q=0.6");
                Request.Host        = "chan.sankakucomplex.com";
                Request.Referer     = "https://chan.sankakucomplex.com/user/login";
                Request.UserAgent   = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36";
                Request.ContentType = "application/x-www-form-urlencoded";
                Request.Accept      = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
                Request.Headers.Add("Cookie", $"__cfduid={Cfduid}; auto_page=1; blacklisted_tags=; locale=en");
                string Content = $"url=&user%5Bname%5D={Username}&user%5Bpassword%5D={Password}&commit=Login";

                byte[] ContentBytes = Encoding.ASCII.GetBytes(Content);
                Request.ContentLength = ContentBytes.Length;
                Stream RequestStream = Request.GetRequestStream();
                RequestStream.Write(ContentBytes, 0, ContentBytes.Length);
                RequestStream.Close();
                Request.Timeout = 18 * 1000;

                HttpWebResponse Response = (HttpWebResponse)Request.GetResponse();
                string          Value    = Response.GetResponseHeader("Set-Cookie");
                Response.Close();

                PasswordHash     = new Regex(@"pass_hash=(.*?);").Match(Value).Groups[1].Value;
                ActualUsername   = new Regex(@"login=(.*?);").Match(Value).Groups[1].Value;
                SankakuSessionId = new Regex(@"_sankakucomplex_session=(.*?);").Match(Value).Groups[1].Value;

                if (PasswordHash.Length < 2)
                {
                    LoggedIn = false; return(LoggedIn);
                }
                LoggedIn = true;
                return(LoggedIn);
            }
            catch (WebException Exception)
            {
                ControlHandler.LogAsync("[SANKAKU] " + Exception.Message);
                LoggedIn = false;
                return(LoggedIn);
            }
            catch
            {
                LoggedIn = false;
                return(LoggedIn);
            }
        }