限制对ASMX Web服务的访问

本文关键字:服务 访问 Web ASMX | 更新日期: 2023-09-27 18:25:45

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

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

这两种选择都可能吗?实现这一目标的最佳和首选方式是什么。

限制对ASMX Web服务的访问

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

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

您还可以检查它们是否使用IsAuthenticated属性进行了身份验证。

在您提到的两种方法中,到目前为止,最简单的方法是仅限制对本地服务器的访问。您可以通过代码(正如另一条注释所指出的)或IIS本身的管理来完成此操作。

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

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