我正在使用ASP.NET Web服务。出于这个问题的目的,我可以说我有两种网络方法:
[WebMethod]
public string Checkmeplese() {
return "Hello World";
}
[WebMethod]
public string CheckSomethingElse()
{
return "Check Something Else String";
}
我正在使用最新版本的IIS。
如果我将我的网络服务放在可公开访问的服务器上,那么我可以毫无问题地访问它,但其他人也可以。
我想构建一个使用Web服务的前端,但我不希望其他人能够访问它。
我怎么能这样做只有我的项目才能访问网络服务,或者至少是IP?
答案 0 :(得分:0)
如果我了解您的问题,那么您有以下情况。
您在IIS中托管的Web应用程序和Web服务。您的Web应用程序使用Web服务,您只希望您的Web应用程序可以访问Web服务。你必须确定以下事项。
如果您的Web服务未从客户端脚本访问,只能从Web应用程序后面的代码访问,那么将您的Web服务作为localhost托管,而不是IIS中的ip地址或*绑定。这允许您的Web服务在请求为localhost时从Web应用程序访问。
如果您的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>