2012-12-20 47 views
1

我有一個挑戰,我相信有一位開發人員比我更聰明,可以提供一些見解。在C中檢測本地主機的請求#

我有一個web服務。這個Web服務是用C#中的ASP.NET MVC編寫的。我想讓開發者調用這個Web服務。當開發人員編寫代碼時,我發現Web應用程序通常從本地主機運行。當他們致電此服務時,我希望能夠確定請求是否來自本地主機。但是,如果我查看IP地址,它的機器的IP地址。

有沒有辦法讓我做到這一點?很明顯,Request.IsLocal無法正常工作,因爲我的Web服務運行在完全不同的機器上。

+0

您將如何定義本地(從您的服務角度)?您最好在不同的API端點上設置開發服務,而不是試圖猜測這個。 –

+0

因此,本質上,您想要檢測是否正在通過本地訪問的Web服務器遠程調用*您的Web服務?我認爲你不能這樣做。 –

回答

0

如果不傳遞一些額外的數據以及來自應用程序的請求,就不會有任何方法讓您知道。

您將只能獲取用於向您的Web服務發出請求的IP地址或主機名,而且您聽起來似乎希望能夠找到用於以前的主機名(本地主機)嚮應用程序發出請求(然後觸發對Web服務的調用)。

0

您將如何定義本地(從您的服務角度)?您最好在不同的API端點上設置開發服務,而不是試圖猜測這個。

所有生產級別的API調用都可以使用api.yourservice.com之類的東西,所有開發級別請求都通過dev.yourservice.com進入。

然後,您可以擁有兩個單獨的服務,或讓您的服務讀取所請求的URL並根據此區分。

1

當您調用Web服務時,瀏覽器通常會通過Referer頭部中的頁面。所以你可以檢查這個值是否以「http:// localhost」開頭。幾乎所有的http請求都可以被僞造(包括這個),所以要小心基於這些數據做出什麼樣的決定。

相關問題