none
Ouverture d'un lien dans la même session RRS feed

  • Question

  • Récemment le comportement de IE7 avec mon application a changé (serait-ce dû à un update?).

    Contexte:
    J'ai une application web qui permet le téléchargement de documents. Les utilisateurs font parfois des liens directs (via une URL) directement depuis un document Word vers un autre document stocké sur le serveur.
    Cette application utilise une authentification web forms standard. Si l'utilisateur n'est pas authentifié avec une session active, le formulaire de login s'affiche, ce qui est normal, puis après identification l'utilisateur est redirigé.

    Scénario et problème:
    Un utilisateur ayant un navigateur ouvert avec une session active clique sur un lien dans un document Word. Ce lien s'ouvre dans IE (soit dans le même onglet, un nouvel onglet, ou une nouvelle fenêtre; dépendemment des settings IE. D'après mes essais changer cette préférence ne change rien à mon problème) et le document est téléchargé. C'est ce qui se passait auparavant.
    Depuis quelques temps, le lien s'ouvre apparemment dans une nouvelle session et l'utilisateur doit s'authentifier à nouveau avant de pouvoir télécharger le document. Cela fonctionne, mais est très fastidieux et désagréable pour mes utilisateurs.

    Détails techniques:
    Avec l'aide d'un outil comme fiddler, j'observe le traffic HTTP suivant:

    1. l'utilisateur navigue dans l'application, tout fonctionne normalement. Ces requêtes ont un cookie ASP.NET_SessionId=#session1#.
    2. l'utilisateur ouvre un document Word puis clique sur le lien. Le lien s'ouvre dans IE7 (disons dans le même onglet). Une requête est envoyée à www.monsite.com/GetDocument.aspx?id=3. Cette requête contient un cookie ASP.NET_SessionId=#session2#. J'aimerai que cette requête soit envoyée dans la même session que celle active, afin que le document puisse directement être téléchargé! Cela fonctionnait il y a quelques temps, pour une raison que j'ignore. Mais le comportement bizarre ne s'arrête pas là...
    3. Comme il s'agit d'une nouvelle session, la requête est redirigée (302) vers www.monsite.com/login.aspx?ReturnUrl=... Ce qui est totalement normal et attendu. Le cookie de session indique toujours #session2#, bien entendu.
    4. A ce moment, IE fait qqe chose de totalement bizarre?!? Il renvoie la même requête www.monsite.com/login.aspx?ReturnUrl=... mais cette fois avec un cookie indiquant #Session1#. Pourquoi IE prend-il l'initiative de rafraîchir la page? Pourquoi décide-t-il de changer de session?
    5. Evidemment, à ce moment l'onglet est de nouveau dans la session 1. Donc sans même m'identifier, il me suffit de coller l'adresse d'origine www.monsite.com/GetDocument.aspx?id=3 dans la barre d'adresse d'IE pour récupérer le document...

    Toute aide serait la bienvenue. Merci d'avance!

    jeudi 2 juillet 2009 12:16

Toutes les réponses

  • Bonjour,

    Une idée :
    Avez-vous essayé de regarder au niveau des réglages des sécurité d'IE au niveau des zones et du mode protéger (si vous passez d'une zone à une autre, le cookie change automatiquement).

    Cordialement
    Gilles TOURREAU - MVP C#
    jeudi 2 juillet 2009 19:41
    Modérateur
  • Merci pour votre réponse!

    Je ne suis pas sûr où (ou quoi) regarder malheureusement...

    Je ne pense pas passer d'une zone à une autre dans la mesure où j'accède toujours et uniquement à un seul site (appelons-le www.monsite.com). Ouvrir un nouvel onglet et naviguer vers ce site reste bien dans la même session. Le problème semble survenir uniquement si la navigation est provoquée par une application tierce (par ex. clic sur un lien dans un document Word).
    jeudi 2 juillet 2009 21:55
  • Bonjour,

    Votre document Word est-il ouvert depuis un site SharePoint ?
    Si non, pouvez-vous essayer d'utiliser un autre poste disposant d'IE7 non patché pour voir si le problème existe ?

    Cordialement
    Gilles TOURREAU - MVP C#
    vendredi 3 juillet 2009 07:29
    Modérateur
  • Non, c'est un fichier simple que j'ai sauvé sur mon bureau pour reproduction. Je n'utilise pas Sharepoint.

    J'ai pu reproduire le même problème sur IE6 et IE7, mais dans les deux cas il s'agissait de machines patchées. Je n'ai malheureusement pas de machine non patchée à disposition, car ce serait un test intéressant en effet.
    samedi 4 juillet 2009 18:56
  • Bonjour,

    Avez-vous la possibilité de créer une machine virtuelle (avec Virtual PC), d'installer un OS dessus et d'utiliser IE6 ou 7 non patché ?

    Cordialement
    Gilles TOURREAU - MVP C#
    samedi 4 juillet 2009 20:21
    Modérateur