Использование ajax для вызова веб-службы, когда включена проверка подлинности Windows? - PullRequest
5 голосов
/ 25 февраля 2009

Я пытаюсь вызвать метод веб-службы из JavaScript:

function Search() {

        var context = new Object;
        context.Filter = "Test";

        SearchService.GetSearch(context, onSuccess, onFailed);
    }

    function onSuccess(result) {
        // userContext contains symbol passed into method
        var res = document.getElementById("resultsDiv");
        res.innerHTML = result;
    }

    function onFailed(result) {
        var res = document.getElementById("resultsDiv");
        res.innerHTML = result.get_message();
    }

Вот подпись веб-службы:

[WebMethod]
    public SearchComboBoxItemData[] GetSearch(object context)
    {

Когда я использую проверку подлинности с помощью форм и разрешаю анонимный доступ к веб-службе, все работает нормально.

Однако, когда я использую проверку подлинности Windows для приложения, но разрешаю только анонимный доступ к веб-службе, вызов веб-службы из javascript приводит к следующей ошибке:

Недопустимый вызов веб-службы, отсутствует значение для параметра: 'context'.

Еще одна вещь, которую я заметил, это то, что в Firefox он работает в обоих направлениях. Я вижу ошибку в IE7.

Есть мысли о возможном решении?

Ответы [ 2 ]

0 голосов
/ 22 марта 2009

Похоже, вы используете встроенную аутентификацию, и IE вошел в систему, но Firefox нет. Возможно, вы захотите проверить имя пользователя, под которым зарегистрирован IE.

Кроме того, что-то вроде:

var temp = "";
for(prop in context){
    temp +=prop+"= "+context[prop]+"\n";
}
alert(temp);

Чтобы увидеть, что содержит контекст.

0 голосов
/ 20 марта 2009

Я предполагаю, что вы используете ASP.NET Ajax.

Вы можете попробовать добавить:

preCondition="integratedMode"

атрибут для раздела Модули вашего файла web.config.

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...