1

我对以下情况感到困扰:

我有一个用 C# 编写的 Web 服务(这是古老的符文。.NET 2.0,asmx 文件)。调用服务时,会使用 HttpContext.Current.User 等检查用户。调用需要使用 Active Directory 帐户完成。让当前用户认同这一点完全没有问题。

问题是这个 Web 服务在某个时候调用了另一个 Web 服务,但是在第二个 Web 服务中 Current.User.Identity-object 是空的!?

为什么会这样,我该如何解决?

这两个服务都托管在带有 IIS 6 的 Server 2003 上。这两个服务都在启用了 Windows 身份验证的 ApplicationPools 上运行。

4

1 回答 1

1

很难用对古代符文的有限描述来判断,但我猜第一个服务设置为需要身份验证,而第二个服务不是。所以首先要看的是第二个服务是否允许匿名连接,如果是这样禁用它并且它可以解决。

一般来说,这不是保护 Web 服务的好方法,即使是古老的 ASMX 也是如此。

于 2012-08-20T15:38:52.750 回答