/// <summary> /// Authorize on MAIL.RU server. /// </summary> /// <returns>True or false result operation.</returns> public bool Login() { if (string.IsNullOrEmpty(LoginName)) { throw new ArgumentException("LoginName is null or empty."); } if (string.IsNullOrEmpty(Password)) { throw new ArgumentException("Password is null or empty."); } WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultCredentials; Proxy = WebRequest.DefaultWebProxy; string reqString = $"Login={LoginName}&Domain={ConstSettings.Domain}&Password={Password}"; byte[] requestData = Encoding.UTF8.GetBytes(reqString); var request = (HttpWebRequest)WebRequest.Create($"{ConstSettings.AuthDomen}/cgi-bin/auth"); request.Proxy = Proxy; request.CookieContainer = Cookies; request.Method = "POST"; request.ContentType = ConstSettings.DefaultRequestType; request.Accept = ConstSettings.DefaultAcceptType; request.UserAgent = ConstSettings.UserAgent; using (var s = request.GetRequestStream()) { s.Write(requestData, 0, requestData.Length); using (var response = (HttpWebResponse)request.GetResponse()) { if (response.StatusCode == HttpStatusCode.OK) { if (Cookies != null && Cookies.Count > 0) { if (response.ResponseUri.OriginalString == $"{ConstSettings.AuthDomen}/cgi-bin/secstep") { string response_text = new MailRuCloud().ReadResponseAsText(response); var csrf = response_text.Split(new[] { "csrf" }, StringSplitOptions.None)[1].Split(',')[0].Where(char.IsLetterOrDigit).ToArray(); this.Csrf = new string(csrf); } else { EnsureSdcCookie(); return(GetAuthToken()); } } return(false); } throw new Exception(); } } }
private Stream OpenReadStream(MailRuCloudApi.MailRuCloud cloud, long?start, long?end) { Stream stream = cloud.GetFileDownloadStream(_fileInfo, start, end).Result; return(stream); }