我有一個挑戰,我相信有一位開發人員比我更聰明,可以提供一些見解。在C中檢測本地主機的請求#
我有一個web服務。這個Web服務是用C#中的ASP.NET MVC編寫的。我想讓開發者調用這個Web服務。當開發人員編寫代碼時,我發現Web應用程序通常從本地主機運行。當他們致電此服務時,我希望能夠確定請求是否來自本地主機。但是,如果我查看IP地址,它的機器的IP地址。
有沒有辦法讓我做到這一點?很明顯,Request.IsLocal無法正常工作,因爲我的Web服務運行在完全不同的機器上。
我有一個挑戰,我相信有一位開發人員比我更聰明,可以提供一些見解。在C中檢測本地主機的請求#
我有一個web服務。這個Web服務是用C#中的ASP.NET MVC編寫的。我想讓開發者調用這個Web服務。當開發人員編寫代碼時,我發現Web應用程序通常從本地主機運行。當他們致電此服務時,我希望能夠確定請求是否來自本地主機。但是,如果我查看IP地址,它的機器的IP地址。
有沒有辦法讓我做到這一點?很明顯,Request.IsLocal無法正常工作,因爲我的Web服務運行在完全不同的機器上。
如果不傳遞一些額外的數據以及來自應用程序的請求,就不會有任何方法讓您知道。
您將只能獲取用於向您的Web服務發出請求的IP地址或主機名,而且您聽起來似乎希望能夠找到用於以前的主機名(本地主機)嚮應用程序發出請求(然後觸發對Web服務的調用)。
您將如何定義本地(從您的服務角度)?您最好在不同的API端點上設置開發服務,而不是試圖猜測這個。
所有生產級別的API調用都可以使用api.yourservice.com
之類的東西,所有開發級別請求都通過dev.yourservice.com
進入。
然後,您可以擁有兩個單獨的服務,或讓您的服務讀取所請求的URL並根據此區分。
當您調用Web服務時,瀏覽器通常會通過Referer頭部中的頁面。所以你可以檢查這個值是否以「http:// localhost」開頭。幾乎所有的http請求都可以被僞造(包括這個),所以要小心基於這些數據做出什麼樣的決定。
您將如何定義本地(從您的服務角度)?您最好在不同的API端點上設置開發服務,而不是試圖猜測這個。 –
因此,本質上,您想要檢測是否正在通過本地訪問的Web服務器遠程調用*您的Web服務?我認爲你不能這樣做。 –