Получение html-страницы с аутентификацией, вставленной в iframe - PullRequest
0 голосов
/ 10 июля 2019

Я программирую на C # NET (как правило) и angularjs.

Я хочу получить доступ к определенной странице сервера с аутентификацией.

То, что я сделал, это вход в систему (с пользователем + пароль) клиентом и получение токена с сервера (с помощью функции API остальных).

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

Что делать, если я хочу вернуть HTML-страницу и вставить ее в iframe.

Каков наилучший способ извлечения самой HTML-страницы?

Код в клиентском javascript (с использованием angualrjs):

$scope.setDashboardURL = function () {
        $.ajax({
            type: "GET",
            url: "http://localhost:64185/my_api_controller/Dashboard.html",
            "Access-Control-Allow-Origin": "*",
            beforeSend: function (xhr) {
                xhr.setRequestHeader("Authorization", 'Bearer ' + "my_token_value");
            },
            success: function (data) {
                var iframeDoc = document.querySelector('#iframeDashboard').contentWindow.document;
                iframeDoc.open('text/html', 'replace');
                iframeDoc.write(data);
                iframeDoc.close();
            }
        });
    }

HTML может выглядеть так:

<html ng-app="employee">
    <head>
        <meta charset="utf-8" />
        <title>AngularJs Sample</title>
        <link rel="stylesheet" href="../Content/bootstrap.min.css">
        <link rel="stylesheet" href="../Content/bootstrap-grid.min.css">
        <link rel="stylesheet" href="../Content/bootstrap-reboot.min.css">
        <script src="../app/app.js"></script>
        <script src="../app/controllers/employeeCommon.js"></script>
        <script src="../app/controllers/employeeDataController.js"></script>
    </head>
    <body>
        <h1>Details</h1>
        <div ng-controller="employeeDataController">
            <div class="full-height-content full-height-content-scrollable" ng-init="setDashboardURL()" height="100%" width="100%">
                <iframe id="iframeDashboard" height="100%" width="100%"></iframe>
            </div>
        </div>
    </body>
    </html>

Сервер написан на C # с использованием Авторизации -

Я знаю, что существует приемлемая методология, использующая библиотеку owin для C #.

Я новичок в этой методологии, , но мне также нужен эквивалент для nodejs (в качестве концепции) - если нет owin для nodejs, какая методология используется для этого языка программирования или есть какая-либо общая концепция аутентификации для большинства языков.

Как я могу пройти, чтобы получить html-страницу с использованием этого носителя?

Должен ли я написать C # контроллер web-api, который возвращает HTML в виде текста, и проанализировать его на клиенте, или есть ли лучший способ сделать это?

Это должно быть введено в iframe, как я описал выше код. Мне нужно несколько примеров, пожалуйста.

Спасибо.

...