限制对ASP.NET Web服务的访问

时间:2014-12-21 11:19:21

标签: c# asp.net web-services

我正在使用ASP.NET Web服务。出于这个问题的目的,我可以说我有两种网络方法:

    [WebMethod]
    public string Checkmeplese() {
        return "Hello World";
    }
    [WebMethod]
    public string CheckSomethingElse()
    {
        return "Check Something Else String";
    }

我正在使用最新版本的IIS。

如果我将我的网络服务放在可公开访问的服务器上,那么我可以毫无问题地访问它,但其他人也可以。

我想构建一个使用Web服务的前端,但我不希望其他人能够访问它。

我怎么能这样做只有我的项目才能访问网络服务,或者至少是IP?

2 个答案:

答案 0 :(得分:0)

如果我了解您的问题,那么您有以下情况。

您在IIS中托管的Web应用程序和Web服务。您的Web应用程序使用Web服务,您只希望您的Web应用程序可以访问Web服务。你必须确定以下事项。

  1. 如果您的Web服务未从客户端脚本访问,只能从Web应用程序后面的代码访问,那么将您的Web服务作为localhost托管,而不是IIS中的ip地址或*绑定。这允许您的Web服务在请求为localhost时从Web应用程序访问。

  2. 如果您的Web服务需要从客户端访问,那么您必须限制(此案例包括许多内容)。用户名和密码保护,基于令牌的机制,跨站点请求发布,因此您必须决定必须使用的内容。甚至你用IP地址限制。

答案 1 :(得分:0)

使用可以使用内置的ASP.NET过滤:

<system.webServer>
    <security>
        <ipSecurity allowUnlisted="false">                
            <clear/>
            <add ipAddress="a.b.c.d" allowed="true"/>
        </ipSecurity>
    </security>
</system.webServer>