Beispiel #1
0
        /// <summary>
        /// Авторизация и получение токена в асинхронном режиме
        /// </summary>
        /// <param name="params">Данные авторизации</param>
        public Task AuthorizeAsync(ApiAuthParams @params)
        {
            var rTask = new Task(() => { Authorize(@params); });

            rTask.Start();
            return(rTask);
        }
Beispiel #2
0
Datei: VkApi.cs Projekt: apltc/vk
        /// <summary>
        /// Авторизация и получение токена
        /// </summary>
        /// <param name="params">Данные авторизации</param>
        public void Authorize(ApiAuthParams @params)
        {
            //подключение браузера через прокси
            if (@params.Host != null)
            {
                Browser.Proxy = WebProxy.GetProxy(@params.Host, @params.Port, @params.ProxyLogin, @params.ProxyPassword);
            }

            //если токен не задан - обычная авторизация
            if (@params.AccessToken == null)
            {
                AuthorizeWithAntiCaptcha(
                    @params.ApplicationId,
                    @params.Login,
                    @params.Password,
                    @params.Settings,
                    @params.TwoFactorAuthorization,
                    @params.CaptchaSid,
                    @params.CaptchaKey
                    );
                // Сбросить после использования
                @params.CaptchaSid = null;
                @params.CaptchaKey = "";
            }
            //если токен задан - авторизация с помощью токена полученного извне
            else
            {
                TokenAuth(@params.AccessToken, @params.UserId, @params.TokenExpireTime);
            }

            _ap = @params;
        }
Beispiel #3
0
        /// <summary>
        /// Выполняет авторизацию с помощью маркера доступа (access token), полученного извне.
        /// </summary>
        /// <param name="accessToken">Маркер доступа, полученный извне.</param>
        /// <param name="userId">Идентификатор пользователя, установившего приложение (необязательный параметр).</param>
        public void Authorize(string accessToken, long?userId = null)
        {
            if (!string.IsNullOrWhiteSpace(accessToken))
            {
                StopTimer();

                AccessToken = accessToken;
                UserId      = userId;
                _ap         = new ApiAuthParams();
            }
        }
Beispiel #4
0
        /// <summary>
        /// Выполняет авторизацию с помощью маркера доступа (access token), полученного извне.
        /// </summary>
        /// <param name="accessToken">Маркер доступа, полученный извне.</param>
        /// <param name="userId">Идентификатор пользователя, установившего приложение (необязательный параметр).</param>
        /// <param name="expireTime">Время, в течении которого действует токен доступа (0 - бесконечно).</param>
        public void Authorize(string accessToken, long?userId = null, int expireTime = 0)
        {
            if (string.IsNullOrWhiteSpace(accessToken))
            {
                return;
            }

            StopTimer();

            LastInvokeTime = DateTimeOffset.Now;
            SetTimer(expireTime);
            AccessToken = accessToken;
            UserId      = userId;
            _ap         = new ApiAuthParams();
        }
Beispiel #5
0
Datei: VkApi.cs Projekt: apltc/vk
        private void TokenAuth(string accessToken, long?userId, int expireTime)
        {
            if (string.IsNullOrWhiteSpace(accessToken))
            {
                throw new ArgumentNullException(accessToken);
            }

            StopTimer();

            LastInvokeTime = DateTimeOffset.Now;
            SetTimer(expireTime);
            AccessToken = accessToken;
            UserId      = userId;
            _ap         = new ApiAuthParams();
        }
Beispiel #6
0
        /// <summary>
        /// Авторизация и получение токена
        /// </summary>
        /// <param name="params">Данные авторизации</param>
        public void Authorize(ApiAuthParams @params)
        {
            Authorize(
                @params.ApplicationId,
                @params.Login,
                @params.Password,
                @params.Settings,
                @params.TwoFactorAuthorization,
                @params.CaptchaSid,
                @params.CaptchaKey,
                @params.Host,
                @params.Port
                );

            _ap = @params;
            // Сбросить после использования
            _ap.CaptchaSid = null;
            _ap.CaptchaKey = "";
        }
        /// <summary>
        /// Функция логина в вк.
        /// </summary>
        /// <param name="login">Логин.</param>
        /// <param name="password">Пароль.</param>
        /// <returns>True, если успешно, false, если нет.</returns>
        public bool LogInVk(string login, string password)
        {
            if (string.IsNullOrEmpty(login) || string.IsNullOrEmpty(password)) return false;
            /*if (!CheckIfThisUserExistsInVK(login, password))
            {
                return false;
            }*/
            ClearMsgStack();
            usersDict.Clear();
            groupNamesDict.Clear();
            receivedPostsCounter = -1;
            vkGroups = null;
            vkGroupsCount = 0;
            currentVkGroup = 0;
            lastReceivingDateForGroups.Clear();

            try
            {
                var auth = new ApiAuthParams();

                Settings scope = Settings.All;
                auth.Login = login;
                auth.Password = password;
                auth.ApplicationId = 5322484;
                auth.Settings = scope;

                // Первое, что пришло в голову. Есть примеры лучше? Правим код!
                try
                {
                    vk.Authorize(auth);
                }
                catch (Exception)
                {
                    using (TwoFactorAuthForm authForm = new TwoFactorAuthForm())
                    {
                        auth.TwoFactorAuthorization = authForm.ShowDialogAndReturnKey;

                        vk.Authorize(auth);
                    }
                }

            }
            catch (Exception)
            {
                return false;
            }

            //lastReceivingDate = DateTime.Now;

            return (isLogged = true);
        }
Beispiel #8
0
Datei: VkApi.cs Projekt: vknet/vk
 /// <summary>
 /// Авторизация и получение токена в асинхронном режиме
 /// </summary>
 /// <param name="params">Данные авторизации</param>
 public Task AuthorizeAsync(ApiAuthParams @params)
 {
     var rTask = new Task(() => Authorize(@params));
     rTask.Start();
     return rTask;
 }
Beispiel #9
0
Datei: VkApi.cs Projekt: vknet/vk
        /// <summary>
        /// Выполняет авторизацию с помощью маркера доступа (access token), полученного извне.
        /// </summary>
        /// <param name="accessToken">Маркер доступа, полученный извне.</param>
        /// <param name="userId">Идентификатор пользователя, установившего приложение (необязательный параметр).</param>
        /// <param name="expireTime">Время, в течении которого действует токен доступа (0 - бесконечно).</param>
        public void Authorize(string accessToken, long? userId = null, int expireTime = 0)
        {
            if (string.IsNullOrWhiteSpace(accessToken))
            {
                return;
            }

            StopTimer();

            LastInvokeTime = DateTimeOffset.Now;
            SetTimer(expireTime);
            AccessToken = accessToken;
            UserId = userId;
            _ap = new ApiAuthParams();
        }
Beispiel #10
0
Datei: VkApi.cs Projekt: vknet/vk
        /// <summary>
        /// Авторизация и получение токена
        /// </summary>
        /// <param name="params">Данные авторизации</param>
        public void Authorize(ApiAuthParams @params)
        {
            AuthorizeWithAntiCaptcha(
                @params.ApplicationId,
                @params.Login,
                @params.Password,
                @params.Settings,
                @params.TwoFactorAuthorization,
                @params.CaptchaSid,
                @params.CaptchaKey,
                @params.Host,
                @params.Port,
                @params.ProxyLogin,
                @params.ProxyPassword
                );

            _ap = @params;
            // Сбросить после использования
            _ap.CaptchaSid = null;
            _ap.CaptchaKey = "";
        }
Beispiel #11
0
        /// <summary>
        /// Выполняет авторизацию с помощью маркера доступа (access token), полученного извне.
        /// </summary>
        /// <param name="accessToken">Маркер доступа, полученный извне.</param>
        /// <param name="userId">Идентификатор пользователя, установившего приложение (необязательный параметр).</param>
        public void Authorize(string accessToken, long? userId = null)
        {
            if (!string.IsNullOrWhiteSpace(accessToken))
            {
                StopTimer();

                AccessToken = accessToken;
                UserId = userId;
                _ap = new ApiAuthParams();
            }
        }