2012-08-16 44 views
0

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

有没有办法做到这一点?如果您有其他方法我希望听到它,则不需要使用WebService。

我的系统是使用ASP.NET 4.0和Microsoft的MVC框架构建的。我可以打电话采取行动吗?

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

但据我了解答案,他提出,web服务可以变成该系统是不能从外部访问内部的普通类方法。这对我不起作用,因为我想从客户端访问它。

感谢, 奥斯卡

PS:变化的基础设施CONFIGS(例如:在内部服务器托管的话)将是很难做到的......

编辑:我想实现这个web服务更新通知号码。这应该在不刷新页面的情况下完成,因为这个原因,我考虑过如果有任何通知和服务器验证,如果有更新UI的话。

Edit2:我可以在我的系统内用一种普通的方法来转换这个webmethod,那不会有问题。然后问题将变为如何将客户端连接到此方法?也许使用JavaScript调用一个动作,然后在这个动作中调用该方法?

回答

0

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

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

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

+0

这将是很好的,但我使用的AppHarbor托管服务,不给我这种灵活性....任何其他想法?正如之前所说,这个功能作为一个Web服务来实现并不是强制性的...... – JSBach 2012-08-16 16:26:46

+0

呵呵,那么就不要把它作为一个web服务来实现。使其成为只有您的MVC应用程序才能访问的类库的一部分。 – 2012-08-16 16:27:51

+0

可以这样做,但我会如何将客户端连接到库调用?我会创建一个MVC动作,该动作将由客户端使用JavaScript调用,并将调用类库中的方法? – JSBach 2012-08-16 16:31:18

相关问题