2009-07-31 9 views
6

Voici donc le problème. J'utilise les ancres comme moyen non rafraîchissant pour permettre la mise en signet des objets de vue en cours.Forms Authentication Redirect cause Perte d'ancrage

http://myserver/showobject.aspx#objectid=10

J'utilise cette façon lors de la mise à jour l'ID d'objet, il ne cherche pas à faire un rafraîchissement sur la page.

Heres le frotter. J'utilise l'authentification par formulaire pour gérer l'accès à ces pages. Ainsi, lorsque vous essayez d'accéder au lien ci-dessus sans vous être connecté en premier, il vous redirige vers la page de connexion. Une fois que vous avez été authentifié avec succès FormsAuthentication.RedirectFromLoginPage (...) vous à la page d'où vous venez. Sauf qu'il trunks # objectid = 10 bit off.

J'ai pensé à quelques hacks (placer un cookie avant la redirection vers la page de connexion, puis lire le cookie et mettre à jour le lien après que "RedirectFromLoginPage" soit fait) pour contourner ce problème, mais je me demandais s'il y avait N'importe quel moyen réel de faire FormsAuthentication.RedirectFromLoginPage faire ce que je veux vraiment faire.

Alors récapituler:

Merci pour l'aide à l'avance,

John.

Répondre

2

cookie temporaire est la voie à suivre ici. les navigateurs Web n'envoient rien après le "#" lorsqu'ils indiquent au serveur l'URL à partir de laquelle ils sont référencés - ainsi le serveur ne peut pas capturer cette information et savoir l'utiliser après que l'utilisateur se connecte

1

Cette partie de l'URL est appelée un fragment et n'est pas vue par le serveur. Il y a des manières hacky autour d'elle en utilisant une page interstitielle et un peu de javascript, mais cela peut devenir salissant.

-2

Le problème peut-il être le signe dièse au lieu du point d'interrogation dans votre chaîne de requête?

-je utiliser l'authentification par formulaire et ne jamais avoir de problèmes lors de l'utilisation

page.aspx?value=x