javascript asp.net asp.net-ajax sitefinity liveid

Error de Javascript al utilizar la biblioteca del lado del cliente de Messenger Connect en ASP.NET



asp.net-ajax sitefinity (1)

Tengo un problema al implementar la nueva funcionalidad de Messenger Connect dentro de un sitio existente de Sitefinity para habilitar los inicios de sesión de los clientes usando Live ID.

A saber, cuando estoy usando el siguiente código para implementar la funcionalidad del lado del cliente:

<head runat="server"> <script type="text/javascript" src="http://js.live.net/4.1/loader.js"></script> </head> <body> <form runat="server" id="form1"> <asp:ScriptManager ID="ScriptManager1" runat="server"/> <wl:app client-id="<%= ConfigurationManager.AppSettings["wl_wrap_client_id"] %>" scope="WL_Profiles.View" callback-url="<%= ConfigurationManager.AppSettings["wl_wrap_client_callback"] %>?wl_session_id=<%=SessionId %>" channel-url="/channel.htm"> </wl:app>

... Recibo tres errores en Firebug que no puedo identificar correctamente:

Sys.ArgumentTypeException: el objeto de tipo ''Sys._Application'' no se puede convertir a ''Sys.IDisposable''. Nombre del parámetro: objeto

(en ScriptResource.axd? d = .... línea 4993)

Sys.Application._doInitialize no es una función

(en la línea 1 de MicrosoftAjaxBase.js)

Sys.InvalidOperationException: el script ''MicrosoftAjaxGlobalization.js'' ha sido referenciado varias veces. Si hace referencia explícitamente a los scripts de Microsoft AJAX, establezca explícitamente la propiedad MicrosoftAjaxMode del ScriptManager.

(en ScriptResource.axd? d = .... línea 984)

Los errores solo se desencadenan cuando loader.js script loader.js de js.live.net.

EDITAR : Parece que los errores no se desencadenan necesariamente en ese orden. La actualización de la página parece mezclar esos errores y / o introducir otros, como una Sys.ParameterCountException en ScriptResource.axd?... en la línea 1842, por ejemplo.


Oye, intenté algunas combinaciones aquí, y la que funcionó fue:

1) Establezca la propiedad ScriptMode del ScriptManager en Release ;

2) Cargue la biblioteca MSN en el evento CodeBehind Page_Load, utilizando la clase ClientScript:

protected void Page_Load(object sender, EventArgs e) { ClientScript.RegisterClientScriptInclude(this.GetType(), "live", "http://js.live.net/4.0/loader.js"); }

Firebug ya no muestra ningún error y, en mi caso, la ventana de autenticación se está abriendo como se desea.

¡Espero eso ayude!

EDITAR

Como se dijo antes, aquí sigue el código completo que utilizo para evitar este problema:

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!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" xmlns:wl="http://apis.live.net/js/2010"> <head> <title>SignIn Example</title> <script type="text/javascript"> function appLoaded(appLoadedEventArgs) { } function signInCallback(signInCompletedEventArgs) { if (signInCompletedEventArgs.get_resultCode() === Microsoft.Live.AsyncResultCode.success) { alert(''Sign-in successful.''); } else { alert(''Sign-in failed.''); } } </script> </head> <body> <form runat="server" id="form1"> <asp:ScriptManager ID="ScriptManager1" runat="server" ScriptMode="Release"></asp:ScriptManager> <wl:app channel-url="http://labs.asteria.com.br/wlm/Channel.html" callback-url="http://labs.asteria.com.br/wlm/Callback.aspx?wl_session_id=<%= Session.SessionID %>" client-id="0000000044052209" scope="WL_Profiles.View" onload="{{appLoaded}}"> </wl:app> <wl:signin id="signInControl" signedintext="Signed in. Click to sign out." signedouttext="Click to sign in." onsignin="{{signInCallback}}" /> </form> </body> </html>

Default.aspx.cs

using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { ClientScript.RegisterClientScriptInclude(this.GetType(), "live", "http://js.live.net/4.0/loader.js"); } }

Web.config

<?xml version="1.0"?> <configuration> <appSettings> <add key="wl_wrap_client_secret" value="[YOUR SECRET KEY]"/> <add key="wl_wrap_client_id" value="0000000044052209"/> <add key="wl_wrap_client_callback" value="http://labs.asteria.com.br/wlm/Callback.aspx"/> </appSettings> <connectionStrings/> <system.web> <customErrors mode="Off"/> <compilation debug="true" targetFramework="4.0"></compilation> <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/> </system.web> </configuration>

Para verlo en ejecución, puede acceder a http://labs.asteria.com.br/wlm . Parece que la URL de consentimiento (https://consent.live.com/AccessToken.aspx) no responde en este momento.