AJAX调用调用WebService的MVC控制器

时间:2012-08-31 18:30:17

标签: asp.net-mvc-3 web-services jquery controller windows-authentication

我们正在开发一个纯粹使用Windows身份验证的内部MVC3应用程序。有一个视图对调用Web服务之前执行某些处理的控制器操作执行AJAX调用。我们遇到的问题是,如果关闭匿名访问(如在Windows身份验证中启用),则从控制器操作调用服务会导致401:未授权错误。

我们遇到了双跃点问题,即在服务中调用服务时,凭据未正确地从服务器传递到服务器。我想知道AJAX调用是否有点模仿相同的行为,并且没有将正确的Windows凭据传输到控制器,然后控制器没有将正确的凭据传递给Web服务。

我看过一些帖子,展示了如何传递用户名和密码以及jQuery调用,但没有提及,一种有效的方式,带来Windows身份验证。

有没有人遇到过类似的问题?我们宁愿不在Web服务上保留匿名访问权限,因为它是我们希望控制访问权限的一些敏感数据。

2 个答案:

答案 0 :(得分:0)

您是否按照此问题中所述开启了身份模拟:

How to get Windows user name when identity impersonate="true" in asp.net?

答案 1 :(得分:0)

一位同事在周末做了一些研究,并确定它可能与服务器上的Kerberos身份验证设置以及jQuery调用有关。为了解决这个问题,我们只是将Web服务重构为应用程序引用的库。我们最初将其设为Web服务,因为我们认为将来需要从其他应用程序访问这些数据。遇到这个问题,我们很可能会把它变成NuGet包。

感谢您的评论。