Одним из недостатков политики одного и того же источника является то, что она не поддерживает разные порты или поддомены. В результате, если вы размещаете свои службы на поддомене, таком как services.site.com, вы не можете вызывать службу с www.site.com без использования JSONP.
Есть ли способ настроить службу WCF для приема запросов только из определенных источников?
Пример:
$(document).ready(function () {
$("#Button").click(function () {
$.getJSON("http://services.site.com/service.svc/myService?callback=?", function (data) {
var jObj = $.parseJSON(data);
$("#Result").html(jObj.MyValue);
});
});
});
Если бы это было вызвано с www.site.com, я бы хотел, чтобы это работало. Но если бы его назвал другой сайт, например www.example.com, я бы хотел, чтобы служба WCF заблокировала его.
Я попытался настроить файл web.config, чтобы он имел:
<identity>
<dns value="www.example.com"/>
</identity>
Но когда я попытался позвонить с сайта www.site.com, он все равно работал нормально. Я считаю, что это связано с тем, что я установил для crossDomainScriptAccessEnabled значение true, чтобы JSONP возвращал правильное значение обратного вызова. Работаю с WCF всего несколько дней.
Заранее спасибо.