2012-08-16 74 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

相關問題