首页 > 解决方案 > 需要通过 Azure AD 进行身份验证的应用程序中的动态更新页面

问题描述

我很好奇是否有人对这种独特情况有解决方案,因为我目前有解决方案,尽管我觉得这不是最理想的。

情况。 我已经构建了一个 MVC 风格的 Web 应用程序,它通过 http(通过 JWT 进行身份验证)与 Web API 对话。我的 Web 应用程序通过将授权附加​​到其视图控制器并重定向到 Microsoft 登录端点来保护我的 Web 应用程序 - 然后返回到视图,无论给定的控制器/函数在哪里处理请求、连接到 API、将数据附加到视图等。

最好我想使用 JQuery/Ajax 在客户端提交 http 请求,并使用用户可能希望看到的相对于他们所在网页的任何数据更新给定视图。通过这种方式,我可以准确控制用户应该以何种方式登陆页面并将请求从 Web 应用程序提交到 API。也可以在请求之间实现更好的连续性,因为实际上并没有完全刷新视图。总而言之,我的想法是这种执行将带来良好的用户体验。

问题。 因此,我不得不规避的最大问题是 CORS 政策。正如我上面所说的,我最初尝试使用 JS,但是由于请求中没有附加 CORS 标头,请求将被重定向到登录端点并被阻止。

“因此,在您的应用程序中包含一个策略并将一个授权标头附加到您的 Ajax 传出请求”您可能会说,嗯……您不能覆盖 Microsoft 登录端点周围的 CORS 安全性。

我的解决方案。 我所做的只是围绕用户选择并选择的字段创建 HTML 表单,以指定他们想要从 API 获得的数据。然后通过“ViewData”将输入数据传递到返回的视图

当然,使用剃须刀页面我实际上可以通过 C# 输入初始化 JS 变量。

旁注 我使用 JS 将 API 数据转换为图形供用户查看。我正在使用 JavaScript 库执行此操作。

我的问题给你。 这一切都让我问,有没有办法在不使用 JS 的情况下动态更新视图?我需要一种可以点击登录重定向而不会因为请求在客户端启动而被阻止的方法。

我知道的每个解决方案都以某种方式、形状或形式利用 JS 来提出请求。因此,我不知道如何真正获得我所追求的功能,而不会因为 CORS 政策而阻止我的请求。

提前谢谢大家。

标签: ajaxasp.net-coremodel-view-controller

解决方案


推荐阅读