检索带有注入到iframe中的身份验证的html页面

时间:2019-07-10 13:54:59

标签: c# angularjs authentication token restful-authentication

我通常在C#NET和angularjs中进行编程。

我想通过身份验证访问特定的服务器页面。

我所做的是,由客户端登录(使用用户名和密码)并从服务器获取令牌(通过rest 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 (作为一个概念)-如果没有nodejs的专有名词,那么该编程语言使用哪种方法?大多数语言的认证通用概念。

如何通过使用该载体来检索html页面?

我应该编写C#web-api控制器以将html作为文本返回并在客户端上进行解析,还是有更好的方法呢?

应该将其插入iframe,如我上面描述的代码。 我需要一些例子。

谢谢。

0 个答案:

没有答案