Iframe Access Denied Cross Domain

Iframe + AjaxControlToolkit v1 + IE = Access Denied Cross Domain  


Siempre oí hablar del infierno de las DLL pero cuando hablamos de desarrollos web no nos podemos olvidar del infierno de los iFrames.


Cabe decir que este problema lo han solucionado en la nueva versión de AjaxControlToolkit v3 pero para los que tenemos algún proyecto con la versión  anterior tenemos una solución para este problema de permisos.


Primero mostraremos gráficamente cual es el problema.



Hemos creado un simple TexBox con un CalendarExtender para seleccionar una fecha del calendario y esta página de ejemplo la llamamos desde un Iframe que se encuentra en otro dominio, como si la llamada fuera desde un cliente ;-).


Un claro ejemplo de un error de acceso de Cross-Domain.


En el Blog de Bertrand Le Roy’s nos da una solución para poder solucionar este problema que lo provoca Sys.UI.getLocation al intentar acceder a una  propiedad de la página.


        <asp:ScriptManager ID=”ScriptManager1″ runat=”server”>       


        </asp:ScriptManager>


        <script type= “text/javascript”>


            if (Sys.Browser.agent == Sys.Browser.InternetExplorer){


                Sys.UI.DomElement.getLocation=function(a){


                if(a.self||a.nodeType===9)


                    return new Sys.UI.Point(0,0);


                var b=a.getBoundingClientRect();


                if(!b)


                    return new Sys.UI.Point(0,0);


                var c=a.document.documentElement,d=b.left-2+c.scrollLeft,e=b.top-2+c.scrollTop;


                try{


                    var g=a.ownerDocument.parentWindow.frameElement||null;


                    if(g){


                        var f=2-(g.frameBorder||1)*2;


                    d+=f;e+=f


                    }


               }catch(h){}


               return new Sys.UI.Point(d,e)};


        }


Lo único que tenemos que hacer es sobreescribir Sys.UI.DomElement.getLocation cuando el exploración sea InternetExplorer y evitaremos el tan temido error.



Con esta pequeña modificación ya podemos utilizar nuestro ejemplo dentro de un Iframe desde otro dominio.


Cross-Posting de www.lonetcamp.com


 

Pasamos por el TTT !!!

Nos hemos reunido nuevamente en el TTT de Microsoft en las oficinas de Madrid, en esta nueva cita nos han puesto al día de los nuevos lanzamientos y sobre todo nos ha servido para mantener el contacto con los otros grupos de usuarios y poder compartir nuestras experiencias.


Para muestra os dejo unas fotos de como ha ido la cita.


Avisamos que algunas de estas imágenes pueden dañar la sensibilidad de algunas personas 😉



 


Más fotos en …


Saludos.


CrossPosting de www.LoNetCamp.com


 

WPF Evento 28 Febrero LoNetCamp


 


El Jueves 28 de Febrero del 2008
 
WPF se incluye en la versión 3.0 de Microsoft .NET Framework y permite crear interfaces que incorporan documentos, componentes multimedia, gráficos bidimensionales y tridimensionales, animaciones, características tipo web en nuestras aplicaciones Windows.
 
Toni Recio nos sumergirá en el extraordinario mundo de la programación de aplicaciones con esta innovadora tecnología.


 


Registro Presencial.


http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032369469&Culture=es-ES


 


Registro WebCast.
 
En esta ocasión vamos ha retransmitir el evento por Internet, todo aquel que no se pueda acercar a Tarragona va ha tener la oportunidad de seguir el evento en vivo gracias a Live Meeting.


http://msevents.microsoft.com/cui/eventdetail.aspx?EventID=1032369492&Culture=es-ES


Ahora no hay excusa esperamos veros a todos…