2009-02-25 31 views
5

Bir web hizmet yöntemini javascript'ten aramaya çalışıyorum:Windows Kimlik Doğrulama açıkken web servisini aramak için ajax kullanma?

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(); 
    } 

Web hizmeti imzası şöyledir:

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

Form kimlik doğrulaması kullandığımda ve web hizmetine anonim erişime izin verdiğimde her şey yolunda .

Ancak, uygulama için Windows kimlik doğrulaması kullandığınızda, ancak yalnızca web hizmetine anonim erişime izin verdiğimde, web hizmetini javascript'ten çağırmak aşağıdaki hatayı atar:

Geçersiz web hizmeti çağrısı, parametre için eksik değer: ' bağlam'.

Fark ettiğim bir başka şey de Firefox'ta her iki şekilde de iyi çalışmasıdır. IE7'deki hatayı görüyorum.

Olası bir çözüm üzerinde herhangi bir düşünce var mı?

+0

Hizmete hem anonim hem de kimliği doğrulanmış erişimi etkinleştirdiğinizde IE'den çalışıyor mu? –

+0

Bu soruna bir çözüm buldunuz mu, aynı sorunu yaşıyorum. Teşekkürler. – Picflight

cevap

0

ASP.NET Ajax kullanıyorsunuz.

ekleyerek deneyebilirsiniz: web.config dosyasının Modülleri bölümüne

preCondition="integratedMode" 

niteliği.

Umut bu

0

Eğer entegre kimlik doğrulaması kullanarak gibi geliyor yardımcı olur ve IE giriş yaptığını, ancak Firefox değil sahiptir. IE'nin giriş yaptığı kullanıcı adını kontrol etmek isteyebilirsiniz.

Ayrıca çizgisinde bir şey:

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

bağlam içeren sadece ne görmek için.

İlgili konular