1

我有一个单一的 ASMX Web 服务,它有许多可以调用的方法。但是,我想限制某些方法,以便调用者要么需要经过身份验证才能调用它们,要么更好的是只能从运行服务的本地服务器调用。

基本上,那些需要保护的方法将由本地服务器上的 Microsoft Windows 调度程序调用。

是否有可能,以及实现这一目标的最佳和首选方式是什么。

4

2 回答 2

1

在您要保护的 Web 服务的顶部,您可以执行以下操作:

if (!Request.IsLocal)
{
    Response.StatusCode = 401;
    Response.StatusDescription = "Unauthorized";
    return null;
}

您还可以检查他们是否已通过该IsAuthenticated属性进行身份验证。

于 2013-08-01T17:18:47.150 回答
0

在您提到的两种方法中,迄今为止最简单的方法是限制对本地服务器的访问。您可以通过代码(正如另一条评论指出的那样)或通过管理 IIS 本身来做到这一点。

如果您加载 IIS 管理器并选择 asmx 文件所在的文件夹,您将在右侧看到“IP 地址和域限制”部分。打开它,添加默认拒绝规则,然后添加 127.0.0.1 的允许规则。

请注意,使用此方法将限制此文件夹中的所有服务,因此如果不需要或不希望这样做,您可能需要将其移动到其自己的文件夹中。

于 2013-08-01T12:42:51.530 回答