首页 > 解决方案 > 没有任何WebAPI调用的Angular获取http响应标头?

问题描述

我的 sql server 上安装了一个登录授权模块。

该模块是从我的 wwwroot 目录中的 web.config 文件触发的。

  <modules>
      <add name="PingAccessModule"/>
    </modules>

在正常使用情况下

我连接到我的网站www.connecttosite.com -> 模块拦截请求并将用户登录 -> 验证请求然后将额外的 http 标头发送到我的 Web api,我可以在其中读取这些额外的标头并获取用户信息。

问题是这需要我创建一个额外的 asp.net web api 项目,该项目与我的 angular 应用程序存在于同一目录中。

我想知道是否有一种仅使用角度的方法,我可以连接到网站-> 角度以某种方式拨打电话-> 模块拦截呼叫-> 将额外信息附加到响应标头,我可以在角度看到此标头而不必完全使用 web api 吗?

我可以使用 Angular 作为 web api 吗?

编辑:

因此,如果我想创建自己的标题但登录模块将用户信息附加到标题,则当前答案有效。

请看下面的照片:

在此处输入图像描述

  1. 授权是堆栈中的第一个调用(以绿色圈出)。这是拦截对网站的请求并登录用户的模块。

  2. 红色箭头是对 Angular 网站的实际调用。然后你可以看到正常的角度模块(main.js、env.js、polyfills 等)加载之后。

  3. 当对网站进行初始调用时,即使在角度加载所有模块之前,我需要的标头也将可用。角度负载时如何正确访问它们?

标签: angularasp.net-web-apipingfederatepingaccess

解决方案


尝试根据您的情况使用模拟 api。

这应该允许您使用 angular 作为 api 并从您的普通 angular 客户端调用它。

所以你会服务它并这样称呼它

this.http.get('http://localhost:3000/api/YourMethodToGetUserInformation');

推荐阅读