2009-02-25 4 views
5

javascript에서 웹 서비스 메서드를 호출하려고합니다 :Windows 인증을 사용할 때 ajax를 사용하여 웹 서비스 호출?

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 인증을 사용하지만 webservice에 대한 익명 액세스 만 허용하면 javascript에서 웹 서비스를 호출하면 다음 오류가 발생합니다.

매개 변수 값이 누락 된 잘못된 웹 서비스 호출 : 문맥'.

또 다른 사실은 Firefox에서 잘 작동한다는 것입니다. IE7에서 오류가 표시됩니다.

가능한 해결책에 대한 의견이 있으십니까?

+0

서비스에 대한 익명 액세스와 인증 된 액세스를 모두 사용하도록 설정하면 IE에서 작동합니까? –

+0

이 문제에 대한 해결책을 찾았습니까? 동일한 문제가 있습니다. 감사. – Picflight

답변

0

ASP.NET Ajax를 사용하고 있다고 가정합니다.

당신은 추가 시도 할 수 있습니다 : 당신의 web.config 파일의 모듈 섹션

preCondition="integratedMode" 

속성을.

희망이

0

통합 인증을 사용하는 것처럼 소리를하는 데 도움이, 그리고 IE는 로그인 한하지만, 파이어 폭스는 않았습니다. IE가 로그인 한 사용자 이름을 확인하고 싶을 수 있습니다.

또한,의 라인을 따라 뭔가 :

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

컨텍스트에 포함 된 단지 무엇을 참조하십시오.

관련 문제