限制对ASMX Web服务的访问

时间:2013-08-01 12:36:41

标签: c# asmx

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

基本上,需要保护的方法将由本地服务器上的Microsoft Windows Scheduler调用。

这两种选择是否可行,以及实现这一目标的最佳方式是什么。

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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

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

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