限制对Web服务的访问,以便只有我的应用程序才能使用它

时间:2012-08-16 15:43:09

标签: asp.net asp.net-mvc-3 web-services

我有一个系统,它会每隔X秒更新一些关于用户通知的UI细节(就像StackOverflow的通知,gmail收件箱等)。 我计划有一个web服务,它将检查新通知并每隔X秒调用一次。事实是:我不想让每个人公开,我想让它只对我的系统可访问,所以它是唯一能够使用它的人。

有没有办法做到这一点?如果您有其他方法我不想使用WebService。

我的系统是使用ASP.NET 4.0和Microsoft的MVC框架构建的。我可以召集一个动作去做吗?

我的问题与此类似:How do I secure ASP.NET web service to only allow relative path calling?

但据我理解答案,他建议将Web服务转变为系统内部无法从外部访问的普通类方法。这对我不起作用,因为我想从客户端访问它。

谢谢, 奥斯卡

ps:改变基础架构配置(例如:在内部服务器中托管它)将很难做到......

编辑:我希望通过此Web服务实现的目的是更新通知编号。这应该在不刷新页面的情况下完成,因此我考虑使用服务器验证是否有任何通知,如果有,则更新UI。

Edit2:我可以用我系统中的普通方法转换这个web方法,这没问题。然后问题将变为如何将客户端连接到此方法?可能使用javascript调用操作然后在此操作中调用方法?

1 个答案:

答案 0 :(得分:0)

在另一个网站上部署此WebService,然后configure this site只能从IP:127.0.0.1访问。另外结帐this blog post - 您可以安装IP Security,然后安装:

  

最后,要创建限制,请打开IIS管理器并选择   您要限制的网站。打开IP地址和域   限制模块,然后在操作面板中(右侧)   选择编辑功能设置....只允许本地浏览   应该默认拒绝。从下拉列表中选择“拒绝”,然后单击“确定”。   然后添加您的例外 - 您要允许的IP或范围   进入。为此,请从操作中选择“添加允许输入...”   面板,并添加所需的所有例外。

现在,只有在同一个Web服务器上运行的应用程序才能访问此Web服务。