我们正在开发一个纯使用Windows Authentication的内部MVC3应用程序。有一个视图执行对控制器操作的AJAX调用,该操作在调用web服务之前执行一些处理。我们遇到的问题是,如果匿名访问被关闭(就像在Windows身份验证中被打开一样),从控制器操作调用服务将导致401: Unauthorized错误。
我们遇到了一个双跳问题,在调用服务中的服务时,凭据不能在服务器之间正确传递。我想知道AJAX调用是否在某种程度上模仿了相同的行为,并且没有将正确的Windows凭据传输到控制器,然后控制器不会将正确的凭据传递给web服务。
我看过一些帖子,展示了如何将用户名和密码与jQuery调用一起传递,但没有提到一种有效的方式来带来Windows身份验证。
有谁遇到过类似的问题吗?我们不希望在web服务上留下匿名访问,因为它是我们想要控制访问的某种敏感数据。
发布于 2012-09-01 02:35:58
发布于 2012-09-04 22:37:55
一位同事在周末做了一些研究,确定这可能与服务器上的Kerberos身份验证设置以及jQuery调用有关。为了绕过它,我们只需将web服务重构为应用程序仅引用的库。我们最初将其作为web服务,因为我们认为在未来,这些数据将需要从其他应用程序访问。遇到这个问题时,我们很可能会将其放入NuGet包中。
谢谢你的评论。
https://stackoverflow.com/questions/12220791
复制相似问题