Загрузите файл из приложения C # winforms в C # asp.net core mvc web app с помощью Azure Auth и токена запроса - PullRequest
0 голосов
/ 22 июня 2019

Две части: 1. c # winforms app 2. c # asp.net core mvc web app

В веб-приложении есть действие контроллера, которое принимает загрузку файла через.отправить запрос.

Настольное приложение должно отправить файл с URL-адресом действия веб-приложения без помощи пользователя.

Это было бы просто для меня, но веб-приложение требует, чтобы все запросы приходилиот лазурного авторизованного oauth.И для этого действия также требуется токен проверки.

Я решил использовать элемент управления webbrowser вместо простого httpwebrequest, полагая, что это позаботится о Azure Auth.И это делает, эта часть работает.

Затем я делаю запрос 'get' и успешно получаю форму из веб-приложения, присутствует токен, элемент ввода типа 'file' готов к приему файла.

Затем я пытаюсь передать значение файла в элемент.

Наконец, я вызываю вызов submit, который успешно выполняет действие веб-приложения на контроллере, токен проверяет, нофайла там нет ... он не установил значение для элемента ввода в предыдущем шаге c # winform.

Итак, мой второй подход - получить файл в элемент управления веб-браузера для отправки, используя .Navigate() метод, который имеет параметр, в который мы можем включить заголовки запроса.Я создал заголовок запроса для включения данных файла.

Опять же, он перемещается, контроллер веб-приложения отправляет запрос, но он не выполняется, потому что токен отсутствует, так как я не знаю, как это включить, и яначинаю отказываться от всего подхода к управлению веб-браузером, поскольку он кажется неуклюжим.

Если бы я мог использовать чистый запрос httpwebrequest, который был бы предпочтительным, но не знаю, как создать весь запрос, он включает в себя необходимые требования дляazure auth и проверочный токен.

Если я смогу заставить работать то, что у меня есть, это тоже подойдет.

Или, если кто-то может предложить лучший подход, который также будетотлично.

Спасибо.

ЗДЕСЬ ФОРМА HTML

<form id="frm2Upload" asp-action="UploadCompletions" asp- 
controller="CutStations" method="post" enctype="multipart/form-data">

<div class="form-group col-lg-2">
    <input type="file" accept=".xml" id="formFile" name="formFile" class="control-label text-info" value="" />
    <br />
    <button type="submit" class="btn btn-default"><span class="fa fa-cloud-upload-alt"></span> Upload File</button>
</div> </form>

ФАЙЛ НАСТРОЙКИ DESKTOP APP В ВЕБ-БРАУЗЕРЕ HTML DOC

    public void Submit(string filepath)
    {
        System.Windows.Forms.HtmlElement htmlElement_InputFile = webBrowser.Document.GetElementById("formFile");
        htmlElement_InputFile.SetAttribute("value", filepath);
        form.InvokeMember("submit");
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...