2011-07-19 20 views
7

Próbuję utworzyć stronę internetową za pomocą javscript, która używa uwierzytelniania opartego na formularzu do logowania do serwera programu SharePoint, ale nadal używa NTLM, który jest oparty na Windows uwierzytelniania. Czy istnieje sposób zezwalania na uwierzytelnianie oparte na formularzach przy użyciu javascript, ponieważ ta strona jest przeznaczona dla telefonów komórkowych i urządzeń typu phonegap? Z góry dziękuję. Każda pomoc doceniona.Uwierzytelnianie za pomocą formularzy przy użyciu Javascript dla Sharepoint

Mój kod wygląda następująco:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title></title> 
<script src="jquery-1.6.2.min.js" type="text/javascript"></script> 
</head> 
<body> 
<div> 
<script type="text/javascript"> 

$(document).ready(function() { 
var soapEnv = "<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'> \ 
    <soap:Body> \ 
    <Login xmlns='http://schemas.microsoft.com/sharepoint/soap/'> \ 
     <username>username1</username> \ 
     <password>password</password> \ 
    </Login> \ 
    </soap:Body> \ 
</soap:Envelope>" 

// Call web service 
$.ajax({ 
url: "http://servername:serverport/_vti_bin/authentication.asmx", 
type: "POST", 
dataType: "xml", 
data: soapEnv, 
complete: processListAccessResult, 
contentType: "text/xml; charset=\"utf-8\"" 
}); 
}); 

// Process result 
function processListAccessResult(xData, status) { 
alert(xData); 
alert(status); 
} 

</script> 

<ul id="data"></ul> 

</div> 

</body> 
</html> 
+0

Jeśli ta strona nie jest obsługiwana z tej samej domeny co witryna SharePoint, nie będzie to działało w pierwszej kolejności. Czy sprawdziłeś również, że FBA zostało poprawnie skonfigurowane; i masz skonfigurowaną bazę danych członkostwa? – gn22

+0

Baza danych członkostwa została skonfigurowana i już wcześniej się temu przyjrzałem. Dlaczego to nie zadziała, jeśli nie będzie obsługiwane z tej samej domeny? Używam tego pliku w protokole file: //, więc zasady dostępu do pochodzenia nie będą miały zastosowania, jeśli o to właśnie chodzi. Mogę zadzwonić do usługi sieciowej, po prostu otrzymuję błąd 401 Nieautoryzowany i nie jestem w stanie się uwierzytelnić, ale jeśli wchodzę na stronę główną serwera, mogę zalogować się przy użyciu FBA, więc baza danych członkostwa powinna zostać skonfigurowana prawidłowo. Jakieś rozwiązania w tej sprawie? Dzięki. Doceniony. –

Odpowiedz

2

miałem ten sam problem (401 nieautoryzowane), zajęło mi wieki, aby uświadomić sobie, że to działa jak czar po downgrade wersji jQuery. Teraz używam jQuery 1.4.4. Może jakaś wyższa wersja też działa, ale jeszcze tego nie próbowałem. W każdym razie 1.4.4 powinno załatwić sprawę. Powodzenia!

Powiązane problemy