2009-12-15 5 views
4

Nous avons une page web contenant une iframe contenant une page partageant un cookie d'authentification avec sa page parent. Par exemple, la page iframe est sur le domaine foo.domain.com et la page contenant l'iframe est sur foo2.domain.com. Les deux partagent un cookie de domain.com. Authentification fonctionne très bien, mais le problème est avec ASP.NET dans IE7, nous obtenons toujours une erreur javascript:ScriptResource.axd L'accès est refusé. Cross-Domain iFrame

L'accès est refusé.

ScriptResource.axd

Nous utilisons ASP.NET 3.5, nous utilisons Ajax Toolkit contrôle également (dernière version 3.0.30930.0). Le problème ne se produit pas pour IE8. Pas de problème dans Firefox et Chrome aussi.

Quelqu'un a déjà rencontré ce problème?

Répondre

1

S'il existe une redirection DNS, IE7 peut avoir des problèmes, par ex. si http://site.domain.com est vraiment http://www.domain.com/site, la redirection DNS transparente a des problèmes dans IE7, mais pas les autres navigateurs que vous mentionnez. IE7 traite cela comme un script inter-domaines et bloque ... vous obtenez juste l'accès refusé.

Est-ce le cas, ou quelque chose de similaire avec des redirections ou des domaines différents? Si vous pouvez tester la page principale comme juste domain.com/ obtenez-vous l'erreur? IE7 traite un enfant différemment d'un frère ou d'une sœur.

+0

yup, sonne comme problème de xdomain pour moi aussi. –

+1

J'ai le même problème, existe-t-il une solution rapide sans modifier le code de l'application source? ... comme une configuration IIS ou autre? –

0

En JavaScript, vous devrez peut-être modifier le domaine du document. Il est possible que IE7 regarde les domaines jusqu'au niveau du serveur: foo.domain.com! = Foo2.domain.com. IE8, et al, prennent probablement le domaine du document à la valeur nominale de * .domain.com.

Voici un rapide article de blog connexe: http://jszen.blogspot.com/2005/03/cross-domain-security-woes.html.

Cependant, pour copier le code, ajouter ce qui suit aux deux pages devrait le faire rouler à nouveau.

<script type="text/javascript"> 
    document.domain="example.com"; 
</script> 
Questions connexes