Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Исключение при использовании двухфакторной авторизации с Windows Forms #793

Closed
pitfisher opened this issue Feb 6, 2019 · 6 comments
Labels
Ошибка В существующем функционале есть проблема

Comments

@pitfisher
Copy link

Описание
Попытка вызвать функцию Authorize с двухфакторной авторизацией по нажатию кнопки в приложении Windows Forms приводит к выбрасыванию исключения System.InvalidOperationException: "Эта операция не поддерживается для относительных URI-адресов."

Воспроизведение

  1. Создать в Visual Studio 2017 проект с Windows Forms
  2. Добавить на форму кнопку
  3. Добавить в метод button_Click вызов функции api.Authorize
  4. Запустить проект и нажать на кнопку

Скриншот кода
default

Подробности:
System.InvalidOperationException
HResult=0x80131509
Сообщение = Эта операция не поддерживается для относительных URI-адресов.
Источник = System
Трассировка стека:
в System.Uri.get_AbsoluteUri()
в VkNet.Utils.WebCall.MakeRequest(HttpResponseMessage response, Uri uri, IWebProxy webProxy)
в VkNet.Utils.WebCall.Post(WebForm form, IWebProxy webProxy)
в VkNet.Utils.Browser.FilledTwoFactorForm(Func`1 code, WebCallResult loginFormPostResult)
в VkNet.Utils.Browser.Authorize(IApiAuthParams authParams)
в VkNet.Utils.Browser.Authorize()
в VkNet.VkApi.BaseAuthorize(IApiAuthParams authParams)
в VkNet.VkApi.AuthorizeWithAntiCaptcha(IApiAuthParams authParams)
в VkNet.VkApi.Authorize(IApiAuthParams params)
в VkNet.VkApi.Authorize(ApiAuthParams params)
в WindowsFormsApp1.Form1.button1_Click(Object sender, EventArgs e) в C:\Users\Petr-PC\source\repos\WindowsFormsApp1\WindowsFormsApp1\Form1.cs:строка 27
в System.Windows.Forms.Control.OnClick(EventArgs e)
в System.Windows.Forms.Button.OnClick(EventArgs e)
в System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
в System.Windows.Forms.Control.WndProc(Message& m)
в System.Windows.Forms.ButtonBase.WndProc(Message& m)
в System.Windows.Forms.Button.WndProc(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
в System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
в System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
в System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
в System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
в System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
в System.Windows.Forms.Application.Run(Form mainForm)
в WindowsFormsApp1.Program.Main() в C:\source\repos\WindowsFormsApp1\WindowsFormsApp1\Program.cs:строка 22

ПК

  • Windows 10
  • Visual Studio 2017

Пакет VK.API был установлен посредством nuget.

@inyutin-maxim
Copy link
Member

Предлагаю как временный WorkArround предлагаю реализовать как в WPF примере:
Требуется только реализация интерфейса IBrowser как здесь
И подсунуть ее в конструктор 3-м параметром

@pitfisher
Copy link
Author

Спасибо, так и сделаю.

@inyutin-maxim
Copy link
Member

@petrohiv Вам удалось решить свою проблему?

@pitfisher
Copy link
Author

Использовал авторизацию через IBrowser, полностью как в WPF примере, но начиная со вторника стала появляться ошибка, представленная на скриншоте. Удалось установить, что проблема не в VkNet - с id тестового приложения всё работает корректно. Но, может, вы могли бы подсказать, в чём тут может быть дело?
vknet error

@itsokto
Copy link
Collaborator

itsokto commented Feb 23, 2019

Проблема в дефолтном WebBrowser в WPF. Попробуйте использовать что-нибудь другое.

@inyutin-maxim inyutin-maxim added the Ошибка В существующем функционале есть проблема label Apr 6, 2019
@inyutin-maxim inyutin-maxim added this to the v1.47.0 milestone Sep 11, 2019
@inyutin-maxim inyutin-maxim modified the milestones: v1.47.0, v1.48.0 Oct 10, 2019
@inyutin-maxim inyutin-maxim modified the milestones: v1.48.0, v1.49.0 Dec 6, 2019
@inyutin-maxim inyutin-maxim modified the milestones: v1.49.0, v1.50.0 Feb 7, 2020
@inyutin-maxim inyutin-maxim modified the milestones: v1.50.0, v1.51.0 Mar 3, 2020
@inyutin-maxim inyutin-maxim modified the milestones: v1.51.0, v1.52.0 Apr 5, 2020
@inyutin-maxim inyutin-maxim modified the milestones: v1.52.0, v1.53.0 May 5, 2020
@itsokto itsokto removed this from the v1.53.0 milestone May 30, 2020
@itsokto
Copy link
Collaborator

itsokto commented May 30, 2020

Обсуждение проблем с авторизацией переносится в #997

@itsokto itsokto closed this as completed May 30, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Ошибка В существующем функционале есть проблема
Projects
None yet
Development

No branches or pull requests

3 participants