2010-01-07 245 views
0

我已经构建了一个web服务,但它可以被所有人访问。我希望它只用于我分配的IP。有可能可以在web服务代码上完成。我正在使用vbWeb服务对IP限制

回答

0

如果您仅使用IP来过滤请求,则需要小心,因为这可能会被黑客欺骗。如果这需要安全,您还应该使用身份验证。

+0

你kwow我怎么能做到这一点,因为我需要它是安全的,我能做到这一点在webservice.asmx文件,因为这个文件是我的网站的一部分,我不希望限制影响其他页面。感谢您的回复 – Dirk 2010-01-07 17:45:22

+0

查看“改进Web服务安全性:WCF场景和实施指南”。 http://msdn.microsoft.com/en-us/library/cc949034.aspx – 2010-01-07 19:39:29

+0

感谢您的帮助,我会查找它 – Dirk 2010-01-07 20:10:12

0

通过将规则设置为仅允许特定IP地址访问您的服务来拦截IIS级别的请求。您可以在IIS> [站点/服务名称]>属性>目录安全选项卡> IP地址和域名限制下找到它。

+0

乔治,我可以做到这一点在webservice.asmx文件没有设置IIS,因为这个文件是我网站的一部分,我不想限制影响其他网页。感谢您的回复 – Dirk 2010-01-07 17:46:08

0

您可以在每个Webmethods中检查客户端IP是否正确,但正如其他人所说IP可能被欺骗或可能更改,因此使用WSE3.0实现身份验证可能是更好的选择。

[WebMethod] 
public void DoSomething() 
{ 
    if(HttpContext.Current.Request.UserHostAddress == "allowed ip") 
    { 
    //Your code here 
    } 
    else 
    { 
    //Access Denied 
    } 
} 
+0

感谢您的回复,这是我想要的。 – Dirk 2010-01-08 17:04:53

+0

您应该将此答案标记为您接受的答案,Dirk – 2010-07-07 13:00:20