0
我有我從jQuery的訪問一個頁面上的服務,它看起來像這樣:如何通過引用來限制對WCF服務的訪問?
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class FacadeService
{
ServiceHelper serviceHelper = new ServiceHelper();
[OperationContract]
[WebGet(ResponseFormat=WebMessageFormat.Json)]
public String GetAllProducts()
{
Uri uri = new Uri("http://localhost:12345/api/Products");
return serviceHelper.SubmitGetRequestToService(uri);
}
}
這是偉大的,但任何人現在可以打開瀏覽器並打這個服務。我只想讓本地網站能夠訪問此服務。有沒有什麼內置的方法來做到這一點,或者我必須設計一些聰明的方案來阻止riff-raff?
我真的是第一個碰到這個問題的人嗎?我認爲,因爲WCF以這種方式設置專門用於AJAX調用,所以它會提供某種機制來確保非AJAX調用者不能直接連接到服務並開始吸取數據。在WCF服務中,你沒有來自調用者的「上下文」,所以我認爲會有一些WCF設置。我不能成爲世界上唯一一個穿越這第一人的人,對嗎?! :-) –
我更新了答案 - 如果必須的話,你可以編寫和使用你的行爲。 – evgenyl
再次感謝。我想我不是在尋找「一種」方式來做到這一點,我正在尋找這方面的最佳做法,以及如何解決這個問題。 –