5

我目前正在使用AngularJS开发一个网站,该应用程序旨在POSTGET已经运行的MVC4应用程序之间传输数据。此MVC4应用程序正在使用Windows 身份验证

我可以直接通过浏览器访问MVC4应用程序并导航返回JSON的 URL就好了。现在,我只是手动下载了这个JSON并用它构建了应用程序。

当我直接从我的AngularJS应用程序请求服务器时,我的问题就出现了。我试图使用基本身份验证在另一台服务器上运行它,效果很好。但现在我需要它使用NTLM 身份验证来处理Windows 身份验证。

我考虑构建Type 1 Message并将其设置在授权标头中,但很快我就不知所措了。

我觉得服务器和客户端之间需要大量的通信来进行身份验证,这使得使用AngularJS和 Windows 身份验证(NTLM 身份验证)没有吸引力?我应该如何解决这个问题?

4

1 回答 1

2

这个问题最终自己解决了。

为了解释我需要对项目的构建方式以及问题最初是如何产生的有更多的了解。

这个项目有两个部分:

  1. 该应用程序使用AngularJS在客户端显示数据。
  2. 用于从数据库中获取数据的API/Web 服务。

劈头; 我在本地 Web 服务器上开发和测试这个应用程序,同时仍然使用部署在域上的 API。由于在API/Web 服务上启用了 Windows 身份验证,因此我在AngularJS中的服务无法在未经身份验证的情况下请求此数据。(明显地)

但是,由于这两个应用程序最终都将部署在同一个 IIS 下的同一个域上,因此这个问题最终会自行解决。

将AngularJS应用程序部署在与 API 相同的域和 IIS 上意味着自动验证AngularJS应用程序也验证了 AP​​I。这不需要进一步的代码,因为身份验证 cookie 会自动得到适当的处理。

于 2014-08-25T12:56:34.863 回答