2011-07-19 14 views
7

Estoy tratando de crear una página web usando javscript que usa autenticación basada en formularios para iniciar sesión en el servidor de SharePoint pero sigue utilizando NTLM, que es una autenticación basada en Windows. ¿Hay alguna manera de permitir la autenticación basada en formularios usando javascript ya que esta página web es para móviles y phonegap? Gracias por adelantado. Cualquier ayuda apreciada.Autenticación basada en formularios usando Javascript para Sharepoint

Mi código es el siguiente:

<!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

Si esta página no se sirve desde el mismo dominio que su sitio de SharePoint, esto ni siquiera funcionará en primer lugar. Además, ha verificado que FBA se ha configurado correctamente; y que tiene una base de datos de membresía configurada? – gn22

+0

La base de datos de membresía se ha configurado y he echado un vistazo antes. ¿Por qué esto no funcionaría si no se sirve desde el mismo dominio? Estoy ejecutando este archivo en el protocolo file: // para que la política de acceso al origen no se aplique si esto es a lo que te refieres. Puedo llamar al servicio web, es solo que sigo recibiendo el error 401 no autorizado y no puedo autenticarme, pero si tengo acceso a la página de inicio del servidor, puedo iniciar sesión usando FBA para que la base de datos de membresía se configure. correctamente. Alguna solución sobre esto? Gracias. Apreciado. –

Respuesta

2

que tenían el mismo problema (401 autorizado), me tomó años para darse cuenta de que funciona como un encanto, una vez que degradar la versión de jQuery. Ahora uso jQuery 1.4.4. Tal vez alguna versión más alta también funciona pero aún no lo he intentado. De todos modos, 1.4.4 debería hacer el truco. ¡Buena suerte!

Cuestiones relacionadas