Esempio n. 1
0
File: WebCall.cs Progetto: kadkin/vk
        /// <summary>
        /// WebCall.
        /// </summary>
        /// <param name="url">URL.</param>
        /// <param name="cookies">Cookies.</param>
        /// <param name="host">Хост.</param>
        /// <param name="port">Порт.</param>
        /// <param name="proxyLogin">Логин прокси-сервера</param>
        /// <param name="proxyPassword">Пароль прокси-сервера</param>
        private WebCall(string url, Cookies cookies, string host = null, int? port = null, string proxyLogin = null, string proxyPassword =null)
        {
            Request = (HttpWebRequest)WebRequest.Create(url);
            Request.Accept = "text/html";
            Request.UserAgent = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)";
            Request.CookieContainer = cookies.Container;

            if (host != null && port != null)
                Request.Proxy = new WebProxy(host, port.Value);

            if (Request.Proxy != null)
            {
                if (proxyLogin != null && proxyPassword != null)
                {
                    Request.Proxy.Credentials = new NetworkCredential(proxyLogin, proxyPassword);
                }
                else
                {
                    // Авторизация с реквизитами по умолчанию (для NTLM прокси)
                    Request.Proxy.Credentials = CredentialCache.DefaultCredentials;
                }
            }

            Result = new WebCallResult(url, cookies);
        }
Esempio n. 2
0
        /// <summary>
        /// Заполнить форму двухфакторной авторизации
        /// </summary>
        /// <param name="code">Функция возвращающая код двухфакторной авторизации</param>
        /// <param name="loginFormPostResult">Ответ сервера vk</param>
        /// <returns>Ответ сервера vk</returns>
        private WebCallResult FilledTwoFactorForm(Func <string> code, WebCallResult loginFormPostResult)
        {
            var codeForm = WebForm.From(loginFormPostResult)
                           .WithField("code")
                           .FilledWith(code.Invoke());

            return(WebCall.Post(codeForm, Proxy));
        }
Esempio n. 3
0
        /// <summary>
        /// Заполнить форму двухфакторной авторизации
        /// </summary>
        /// <param name="code"> Функция возвращающая код двухфакторной авторизации </param>
        /// <param name="loginFormPostResult"> Ответ сервера vk </param>
        /// <returns> Ответ сервера vk </returns>
        private WebCallResult FilledTwoFactorForm(Func <string> code, WebCallResult loginFormPostResult)
        {
            var codeForm = WebForm.From(result: loginFormPostResult)
                           .WithField(name: "code")
                           .FilledWith(value: code.Invoke());

            return(WebCall.Post(form: codeForm, webProxy: Proxy));
        }
Esempio n. 4
0
        private WebCall(string url, Cookies cookies)
        {
            Request                 = (HttpWebRequest)WebRequest.Create(url);
            Request.Accept          = "text/html";
            Request.UserAgent       = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)";
            Request.CookieContainer = cookies.Container;

            Result = new WebCallResult(url, cookies);
        }
Esempio n. 5
0
        /// <summary>
        /// Проверка на отсутствие двухфакторной авторизации.
        /// </summary>
        /// <param name="result">Результат.</param>
        /// <returns>WEB форма.</returns>
        public static bool IsOAuthBlank(WebCallResult result)
        {
            var html = new HtmlDocument();

            html.LoadHtml(result.Response);
            var title = html.DocumentNode.SelectSingleNode("//head/title");

            return(title.InnerText.ToLowerInvariant() == "oauth blank");
        }
Esempio n. 6
0
File: WebCall.cs Progetto: odugen/vk
        private WebCall(string url, Cookies cookies)
        {
            Request = (HttpWebRequest)WebRequest.Create(url);
            Request.Accept = "text/html";
            Request.UserAgent = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)";
            Request.CookieContainer = cookies.Container;

            Result = new WebCallResult(url, cookies);
        }
Esempio n. 7
0
        private WebForm(WebCallResult result)
        {
            Cookies      = result.Cookies;
            _originalUrl = result.RequestUrl.OriginalString;

            _html = new HtmlDocument();
            result.LoadResultTo(_html);

            _inputs = ParseInputs();
        }
Esempio n. 8
0
        private WebForm(WebCallResult result)
        {
            Cookies = result.Cookies;
            _originalUrl = result.RequestUrl.OriginalString;

            _html = new HtmlDocument();
            result.LoadResultTo(_html);

            _inputs = ParseInputs();
        }
Esempio n. 9
0
        /// <summary>
        /// Заполнить форму двухфакторной авторизации асинхронно
        /// </summary>
        /// <param name="code"> Функция возвращающая код двухфакторной авторизации </param>
        /// <param name="loginFormPostResult"> Ответ сервера vk </param>
        /// <returns> Ответ сервера vk </returns>
        private Task <WebCallResult> FilledTwoFactorFormAsync(Func <string> code, WebCallResult loginFormPostResult)
        {
            var codeForm = WebForm.From(result: loginFormPostResult)
                           .WithField(name: "code")
                           .FilledWith(value: code.Invoke());

            var task = WebCall.PostAsync(form: codeForm, webProxy: Proxy);

            task.ConfigureAwait(false);
            return(task);
        }
Esempio n. 10
0
File: WebForm.cs Progetto: igofed/vk
        private WebForm(WebCallResult result)
        {
            Cookies      = result.Cookies;
            _originalUrl = result.RequestUrl.OriginalString;

            _html = new HtmlDocument();
            result.LoadResultTo(_html);

            _responceBaseUrl = result.ResponseUrl.GetLeftPart(UriPartial.Authority);

            _inputs = ParseInputs();
        }
Esempio n. 11
0
File: WebForm.cs Progetto: J2GIS/vk
        private WebForm(WebCallResult result)
        {
            Cookies = result.Cookies;
            _originalUrl = result.RequestUrl.OriginalString;

            _html = new HtmlDocument();
            result.LoadResultTo(_html);

            _responceBaseUrl = result.ResponseUrl.GetLeftPart(UriPartial.Authority);

            _inputs = ParseInputs();
        }
Esempio n. 12
0
        private WebCall(string url, Cookies cookies, string host = null, int? port = null)
        {
            Request = (HttpWebRequest)WebRequest.Create(url);
            Request.Accept = "text/html";
            Request.UserAgent = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)";
            Request.CookieContainer = cookies.Container;

            if (host != null && port != null)
                Request.Proxy = new WebProxy(host, port.Value);

            Result = new WebCallResult(url, cookies);
        }
Esempio n. 13
0
 private WebCall(string url, Cookies cookies, VkApi vk)
 {
     Request = (HttpWebRequest)WebRequest.Create(url);
     Request.Accept = "text/html";
     Request.UserAgent = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)";
     Request.CookieContainer = cookies.Container;
     if (!vk.isDefaultVkApi)
     {
         createProxy(ProxyManager.getInstance().reserveOrGet(vk.email), Request);
     }
     Result = new WebCallResult(url, cookies);
 }
Esempio n. 14
0
        private WebCall(string url, Cookies cookies, string host = null, int?port = null)
        {
            Request                 = (HttpWebRequest)WebRequest.Create(url);
            Request.Accept          = "text/html";
            Request.UserAgent       = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)";
            Request.CookieContainer = cookies.Container;

            if (host != null && port != null)
            {
                Request.Proxy = new WebProxy(host, port.Value);
            }

            Result = new WebCallResult(url, cookies);
        }
Esempio n. 15
0
File: WebForm.cs Progetto: vknet/vk
		/// <summary>
		/// WEB форма.
		/// </summary>
		/// <param name="result">Результат.</param>
		private WebForm(WebCallResult result)
		{
			Cookies = result.Cookies;
			OriginalUrl = result.RequestUrl.OriginalString;

            var parser = new HtmlParser();
            _html = parser.Parse(result.Response);

		    var uri = result.ResponseUrl;

            _responseBaseUrl = uri.Scheme + "://" + uri.Host + ":" + uri.Port;

			_inputs = ParseInputs();
		}
Esempio n. 16
0
        /// <summary>
        /// WEB форма.
        /// </summary>
        /// <param name="result">Результат.</param>
        private WebForm(WebCallResult result)
        {
            Cookies     = result.Cookies;
            OriginalUrl = result.RequestUrl.OriginalString;

            _html = new HtmlDocument();
            _html.LoadHtml(result.Response);

            var uri = result.ResponseUrl;

            _responseBaseUrl = uri.Scheme + "://" + uri.Host + ":" + uri.Port;

            _inputs = ParseInputs();
        }
Esempio n. 17
0
        /// <summary>
        /// Получить токен из uri
        /// </summary>
        /// <param name="webCallResult">Результат запроса</param>
        /// <returns>Возвращает uri содержащий токен</returns>
        /// <exception cref="VkApiException">URI должен содержать токен!</exception>
        private Uri GetTokenUri(WebCallResult webCallResult)
        {
            if (UriHasAccessToken(webCallResult.RequestUrl))
            {
                return(webCallResult.RequestUrl);
            }

            _logger?.Debug("Запрос: " + webCallResult.RequestUrl);
            if (UriHasAccessToken(webCallResult.ResponseUrl))
            {
                return(webCallResult.ResponseUrl);
            }

            _logger?.Debug("Ответ: " + webCallResult.ResponseUrl);
            return(null);
        }
Esempio n. 18
0
        /// <summary>
        /// Получить токен из uri
        /// </summary>
        /// <param name="webCallResult">Результат запроса</param>
        /// <returns>Возвращает uri содержащий токен</returns>
        /// <exception cref="VkApiException">URI должен содержать токен!</exception>
        private Uri GetTokenUri(WebCallResult webCallResult)
        {
            if (UriHasAccessToken(webCallResult.RequestUrl))
            {
                return(webCallResult.RequestUrl);
            }

            _logger?.Debug("Запрос: " + webCallResult.RequestUrl);
            if (UriHasAccessToken(webCallResult.ResponseUrl))
            {
                return(webCallResult.ResponseUrl);
            }

            _logger?.Debug("Ответ: " + webCallResult.ResponseUrl);
            throw new VkApiException("URI должен содержать токен!");
        }
Esempio n. 19
0
        private long?HasCaptchaInput(WebCallResult result)
        {
            var request  = VkAuthorization.From(result.RequestUrl.ToString());
            var response = VkAuthorization.From(result.ResponseUrl.ToString());

            if (request.IsCaptchaNeeded)
            {
                return(request.CaptchaSid);
            }

            if (response.IsCaptchaNeeded)
            {
                return(response.CaptchaSid);
            }

            return(null);
        }
Esempio n. 20
0
        /// <summary>
        /// Получить токен из uri
        /// </summary>
        /// <param name="webCallResult"> Результат запроса </param>
        /// <returns> Возвращает uri содержащий токен </returns>
        /// <exception cref="VkApiException"> URI должен содержать токен! </exception>
        private Uri GetTokenUri(WebCallResult webCallResult)
        {
            if (UriHasAccessToken(uri: webCallResult.RequestUrl))
            {
                _logger?.LogDebug(message: "Запрос: " + webCallResult.RequestUrl);

                return(webCallResult.RequestUrl);
            }

            if (UriHasAccessToken(uri: webCallResult.ResponseUrl))
            {
                _logger?.LogDebug(message: "Ответ: " + webCallResult.ResponseUrl);

                return(webCallResult.ResponseUrl);
            }

            return(null);
        }
Esempio n. 21
0
        private VkAuthorization EndAuthorize(WebCallResult result, IWebProxy webProxy = null)
        {
            var authorization = VkAuthorization.From(result.ResponseUrl);

            if (authorization.CaptchaId.HasValue)
            {
                throw new CaptchaNeededException(authorization.CaptchaId.Value, "http://api.vk.com/captcha.php?sid=" + authorization.CaptchaId.Value);
            }
            if (!authorization.IsAuthorizationRequired)
            {
                return(authorization);
            }

            // Отправить данные
            var authorizationForm           = WebForm.From(result);
            var authorizationFormPostResult = WebCall.Post(authorizationForm, webProxy);

            return(VkAuthorization.From(authorizationFormPostResult.ResponseUrl));
        }
Esempio n. 22
0
        /// <summary>
        /// Закончить авторизацию
        /// </summary>
        /// <param name="result">Результат</param>
        /// <param name="webProxy">Настройки прокси</param>
        /// <returns></returns>
        /// <exception cref="CaptchaNeededException"></exception>
        private VkAuthorization EndAuthorize(WebCallResult result, IWebProxy webProxy = null)
        {
            var tokenUri      = GetTokenUri(result);
            var authorization = VkAuthorization.From(tokenUri.ToString());

            if (!authorization.IsAuthorizationRequired && !authorization.IsCaptchaNeeded)
            {
                _logger?.Debug("Завершение авторизации");
                return(authorization);
            }

            _logger?.Debug("Требуется подтверждение прав или ввод капчи");
            // Отправить данные
            var authorizationForm           = WebForm.From(result);
            var authorizationFormPostResult = WebCall.Post(authorizationForm, webProxy);

            tokenUri = GetTokenUri(authorizationFormPostResult);
            return(VkAuthorization.From(tokenUri.ToString()));
        }
Esempio n. 23
0
        private VkAuthorization EndAuthorize(WebCallResult result, string host = null, int?port = null, string proxyLogin = null, string proxyPassword = null)
        {
            var authorization = VkAuthorization.From(result.ResponseUrl);

            if (authorization.CaptchaId.HasValue)
            {
                throw new CaptchaNeededException(authorization.CaptchaId.Value, "http://api.vk.com/captcha.php?sid=" + authorization.CaptchaId.Value);
            }
            if (!authorization.IsAuthorizationRequired)
            {
                return(authorization);
            }

            // Отправить данные
            var authorizationForm           = WebForm.From(result);
            var authorizationFormPostResult = WebCall.Post(authorizationForm, host, port, proxyLogin, proxyPassword);

            return(VkAuthorization.From(authorizationFormPostResult.ResponseUrl));
        }
Esempio n. 24
0
        /// <summary>
        /// WebCall.
        /// </summary>
        /// <param name="url">URL.</param>
        /// <param name="cookies">Cookies.</param>
        /// <param name="host">Хост.</param>
        /// <param name="port">Порт.</param>
        private WebCall(string url, Cookies cookies, string host = null, int?port = null)
        {
            Request                 = (HttpWebRequest)WebRequest.Create(url);
            Request.Accept          = "text/html";
            Request.UserAgent       = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)";
            Request.CookieContainer = cookies.Container;

            if (host != null && port != null)
            {
                Request.Proxy = new WebProxy(host, port.Value);
            }

            if (Request.Proxy != null)
            {
                // Авторизация с реквизитами по умолчанию (для NTLM прокси)
                Request.Proxy.Credentials = CredentialCache.DefaultCredentials;
            }

            Result = new WebCallResult(url, cookies);
        }
Esempio n. 25
0
        /// <summary>
        /// Заполнить форму логин и пароль
        /// </summary>
        /// <param name="email">Логин</param>
        /// <param name="password">Пароль</param>
        /// <param name="captchaSid">ИД капчи</param>
        /// <param name="captchaKey">Значение капчи</param>
        /// <param name="authorizeUrlResult"></param>
        /// <returns></returns>
        private WebCallResult FilledLoginForm(string email, string password, long?captchaSid, string captchaKey,
                                              WebCallResult authorizeUrlResult)
        {
            var loginForm = WebForm.From(authorizeUrlResult)
                            .WithField("email")
                            .FilledWith(email)
                            .And()
                            .WithField("pass")
                            .FilledWith(password);

            if (captchaSid.HasValue)
            {
                _logger?.Debug("Шаг 2. Заполнение формы логина. Капча");
                loginForm.WithField("captcha_sid")
                .FilledWith(captchaSid.Value.ToString())
                .WithField("captcha_key")
                .FilledWith(captchaKey);
            }

            return(WebCall.Post(loginForm, Proxy));
        }
Esempio n. 26
0
File: WebCall.cs Progetto: vknet/vk
        /// <summary>
        /// WebCall.
        /// </summary>
        /// <param name="url">URL.</param>
        /// <param name="cookies">Cookies.</param>
        /// <param name="webProxy">Хост.</param>
        /// <param name="allowAutoRedirect">Разрешить авто редиррект</param>
        private WebCall(string url, Cookies cookies, IWebProxy webProxy = null, bool allowAutoRedirect = true)
        {
            var baseAddress = new Uri(url);

            var handler = new HttpClientHandler
            {
                CookieContainer = cookies.Container,
                UseCookies = true,
                Proxy = webProxy,
                AllowAutoRedirect = allowAutoRedirect
            };
            _request = new HttpClient(handler)
            {
                BaseAddress = baseAddress,
                DefaultRequestHeaders =
                    {
                        Accept = {MediaTypeWithQualityHeaderValue.Parse("text/html")}
                    }
            };
            _result = new WebCallResult(url, cookies);
        }
Esempio n. 27
0
File: WebCall.cs Progetto: GooG2e/vk
        /// <summary>
        /// WebCall.
        /// </summary>
        /// <param name="url">URL.</param>
        /// <param name="cookies">Cookies.</param>
        /// <param name="webProxy">Хост.</param>
        /// <param name="allowAutoRedirect">Разрешить авто редиррект</param>
        private WebCall(string url, Cookies cookies, IWebProxy webProxy = null, bool allowAutoRedirect = true)
        {
            var baseAddress = new Uri(url);

            var handler = new HttpClientHandler
            {
                CookieContainer   = cookies.Container,
                UseCookies        = true,
                Proxy             = webProxy,
                AllowAutoRedirect = allowAutoRedirect
            };

            _request = new HttpClient(handler)
            {
                BaseAddress           = baseAddress,
                DefaultRequestHeaders =
                {
                    Accept = { MediaTypeWithQualityHeaderValue.Parse("text/html") }
                }
            };
            _result = new WebCallResult(url, cookies);
        }
Esempio n. 28
0
        /// <summary>
        /// Закончить авторизацию асинхронно
        /// </summary>
        /// <param name="result"> Результат </param>
        /// <param name="webProxy"> Настройки прокси </param>
        /// <returns> </returns>
        /// <exception cref="CaptchaNeededException"> </exception>
        private async Task <VkAuthorization> EndAuthorizeAsync(WebCallResult result, IWebProxy webProxy = null)
        {
            if (IsAuthSuccessfull(webCallResult: result))
            {
                var auth = GetTokenUri(webCallResult: result);

                return(VkAuthorization.From(uriFragment: auth.ToString()));
            }

            if (HasСonfirmationRights(result: result))
            {
                _logger?.Debug(message: "Требуется подтверждение прав");
                var authorizationForm = WebForm.From(result: result);

                var authorizationFormPostResult =
                    await WebCall.PostAsync(form : authorizationForm, webProxy : webProxy).ConfigureAwait(false);

                if (!IsAuthSuccessfull(webCallResult: authorizationFormPostResult))
                {
                    throw new VkApiException(message: "URI должен содержать токен!");
                }

                var tokenUri = GetTokenUri(webCallResult: authorizationFormPostResult);

                return(VkAuthorization.From(uriFragment: tokenUri.ToString()));
            }

            var captchaSid = HasCaptchaInput(result: result);

            if (!captchaSid.HasValue)
            {
                throw new VkApiException(message: "Непредвиденная ошибка авторизации. Обратитесь к разработчику.");
            }

            _logger?.Debug(message: "Требуется ввод капчи");

            throw new VkApiException(message: "Требуется ввод капчи");
        }
Esempio n. 29
0
        /// <summary>
        /// Авторизация на сервере ВК
        /// </summary>
        /// <param name="appId">Идентификатор приложения</param>
        /// <param name="email">Логин - телефон или эл. почта</param>
        /// <param name="password">Пароль</param>
        /// <param name="settings">Уровень доступа приложения</param>
        /// <param name="captcha_sid">Идентификатор капчи</param>
        /// <param name="captcha_key">Текст капчи</param>
        /// <returns>Информация об авторизации приложения</returns>
        public VkAuthorization Authorize(int appId, string email, string password, Settings settings, Func <string> code = null, long?captcha_sid = null, string captcha_key = null)
        {
            string        authorizeUrl       = CreateAuthorizeUrlFor(appId, settings, Display.Wap);
            WebCallResult authorizeUrlResult = WebCall.MakeCall(authorizeUrl);

            // fill email and password
            WebForm loginForm = WebForm.From(authorizeUrlResult).WithField("email").FilledWith(email).And().WithField("pass").FilledWith(password);

            if (captcha_sid.HasValue)
            {
                loginForm.WithField("captcha_sid").FilledWith(captcha_sid.Value.ToString()).WithField("captcha_key").FilledWith(captcha_key);
            }
            WebCallResult loginFormPostResult = WebCall.Post(loginForm);

            // fill code
            if (code != null)
            {
                WebForm codeForm = WebForm.From(loginFormPostResult).WithField("code").FilledWith(code());
                loginFormPostResult = WebCall.Post(codeForm);
            }

            VkAuthorization authorization = VkAuthorization.From(loginFormPostResult.ResponseUrl);

            if (authorization.CaptchaID.HasValue)
            {
                throw new CaptchaNeededException(authorization.CaptchaID.Value, "http://api.vk.com/captcha.php?sid=" + authorization.CaptchaID.Value.ToString());
            }
            if (!authorization.IsAuthorizationRequired)
            {
                return(authorization);
            }

            // press allow button
            WebForm       authorizationForm           = WebForm.From(loginFormPostResult);
            WebCallResult authorizationFormPostResult = WebCall.Post(authorizationForm);

            return(VkAuthorization.From(authorizationFormPostResult.ResponseUrl));
        }
Esempio n. 30
0
        /// <summary>
        /// Закончить авторизацию
        /// </summary>
        /// <param name="result">Результат</param>
        /// <param name="webProxy">Настройки прокси</param>
        /// <returns></returns>
        /// <exception cref="CaptchaNeededException"></exception>
        private VkAuthorization EndAuthorize(WebCallResult result, IWebProxy webProxy = null)
        {
            if (IsAuthSuccessfull(result))
            {
                var auth = GetTokenUri(result);
                return(VkAuthorization.From(auth.ToString()));
            }

            if (HasСonfirmationRights(result))
            {
                _logger?.Debug("Требуется подтверждение прав");
                var authorizationForm           = WebForm.From(result);
                var authorizationFormPostResult = WebCall.Post(authorizationForm, webProxy);

                if (!IsAuthSuccessfull(authorizationFormPostResult))
                {
                    throw new VkApiException("URI должен содержать токен!");
                }

                var tokenUri = GetTokenUri(authorizationFormPostResult);
                return(VkAuthorization.From(tokenUri.ToString()));
            }

            var captchaSid = HasCaptchaInput(result);

            if (!captchaSid.HasValue)
            {
                throw new VkApiException("Непредвиденная ошибка авторизации. Обратитесь к разработчику.");
            }

            _logger?.Debug("Требуется ввод капчи");
            throw new CaptchaNeededException(
                      captchaSid.Value,
                      "https://m.vk.com/captcha.php?sid=" + captchaSid.Value
                      );
        }
Esempio n. 31
0
File: WebForm.cs Progetto: vknet/vk
		/// <summary>
		/// Из результата.
		/// </summary>
		/// <param name="result">Результат.</param>
		/// <returns>WEB форма.</returns>
		public static WebForm From(WebCallResult result) => new WebForm(result);
Esempio n. 32
0
        /// <summary>
        /// Заполнить форму двухфакторной авторизации асинхронно
        /// </summary>
        /// <param name="code">Функция возвращающая код двухфакторной авторизации</param>
        /// <param name="loginFormPostResult">Ответ сервера vk</param>
        /// <returns>Ответ сервера vk</returns>
        private async Task <WebCallResult> FilledTwoFactorFormAsync(Func <string> code, WebCallResult loginFormPostResult)
        {
            var codeForm = WebForm.From(loginFormPostResult)
                           .WithField("code")
                           .FilledWith(code.Invoke());

            return(await WebCall.PostAsync(codeForm, Proxy));
        }
Esempio n. 33
0
File: WebForm.cs Progetto: igofed/vk
 public static WebForm From(WebCallResult result)
 {
     return(new WebForm(result));
 }
Esempio n. 34
0
 public static WebForm From(WebCallResult result)
 {
     return new WebForm(result);
 }
Esempio n. 35
0
 /// <summary>
 /// Авторизация прошла успешно
 /// </summary>
 /// <param name="webCallResult"></param>
 /// <returns>true, если авторизация прошла успешно</returns>
 private static bool IsAuthSuccessfull(WebCallResult webCallResult)
 => UriHasAccessToken(webCallResult.RequestUrl) ||
 UriHasAccessToken(webCallResult.ResponseUrl);
Esempio n. 36
0
 /// <summary>
 /// Из результата.
 /// </summary>
 /// <param name="result">Результат.</param>
 /// <returns>WEB форма.</returns>
 public static WebForm From(WebCallResult result) => new WebForm(result);
Esempio n. 37
0
 /// <summary>
 /// Проверка наличия двухфакторной авторизации
 /// </summary>
 /// <param name="code">Функция возвращающая код двухфакторной авторизации</param>
 /// <param name="loginFormPostResult">Ответ сервера vk</param>
 /// <returns></returns>
 private bool HasNotTwoFactor(Func <string> code, WebCallResult loginFormPostResult)
 {
     _logger?.Debug("Проверка наличия двухфакторной авторизации");
     return(code == null || WebForm.IsOAuthBlank(loginFormPostResult));
 }
Esempio n. 38
0
 /// <summary>
 /// Авторизация прошла успешно
 /// </summary>
 /// <param name="webCallResult"> </param>
 /// <returns> true, если авторизация прошла успешно </returns>
 private static bool IsAuthSuccessfull(WebCallResult webCallResult)
 {
     return(UriHasAccessToken(uri: webCallResult.RequestUrl) || UriHasAccessToken(uri: webCallResult.ResponseUrl));
 }
Esempio n. 39
0
        static internal void LogWebCallResultDebugInfo(string method, string url, HttpResponseMessage response, WebCallResult res, long executionTimeMS)
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendLine($"{method} {url} - {(int)response.StatusCode} {response.ReasonPhrase} in {executionTimeMS} msec.");
            foreach (var header in response.Content.Headers)
            {
                sb.AppendLine($"{header.Key}: {string.Join("; ", header.Value)}");
            }
            sb.AppendLine(res.Response);
            sb.AppendLine();
            Console.WriteLine($"{nameof(VkApi)} [{nameof(WebCall)}]: " + sb.ToString());
            if (WRITE_TO_FILE)
            {
                File.AppendAllText(HTTP_LOG_PATH, $"{DateTime.Now}: " + sb.ToString(), Encoding.UTF8);
            }
        }