2009-11-11 4 views
2

J'ai un site Web, avec l'authentification par formulaire de base qui fonctionne correctement. Les utilisateurs ont des e-mails contenant des liens vers mon site, avec une variable querystring. Les utilisateurs sont invités à se connecter correctement, mais en utilisantASP.NET Forms Authentication Redirection par défaut [Fonctionnement] et redirection vers la page demandée w/QueryString [ne fonctionne pas]

FormsAuthentication.RedirectFromLoginPage(userName, false);

ne fonctionne pas lorsque l'URL d'origine contient une chaîne de requête.

J'ai essayé ces demandes, sans être connecté:

http://localhost/default.aspx   -- redirect to login, then back to default OK 
    This is the loaded URL before login: 
    http://localhost/login.aspx 

http://localhost/TaskDetail.aspx  -- redirect to login, then back to default FAIL 
    This is the loaded URL before login: 
    http://localhost/login.aspx?ReturnUrl=%2ftaskdetail.aspx 

http://localhost/TaskDetail.aspx?id=5 -- redirect to login, then back to default FAIL 
    This is the loaded URL before login: 
    http://localhost/login.aspx?ReturnUrl=%2fTaskDetail.aspx%3fTaskID%3d2464&TaskID=2464 

Toute aide est vraiment apprécié.

Répondre

1

malheureusement, cela est par la conception, mais voici un article sur cette question qui le décrit, en plus d'une solution de contournement:

http://blogs.msdn.com/vijaysk/archive/2008/01/24/anatomy-of-forms-authentication-return-url.aspx

EDIT: Mes excuses, je pensais qu'il y avait un solution de contournement dans ce blog la première fois que je l'ai lu. Essayez de le faire un Response.Redirect à FormsAuthentication.GetRedirectURL() et en ajoutant la chaîne de requête correcte.

+0

Merci pour la réponse. Je vois comment cette fonctionnalité est construite; Cependant, je ne suis pas en mesure de trouver la solution de contournement que vous mentionnez dans ce lien. – Nate

+0

J'ai fait une modification à mon message, en ajoutant une solution de contournement possible. –

+0

J'ai essayé ce 'Response.Redirect (FormsAuthentication.GetRedirectUrl (uid.Text, false),' et je n'ai pas de chance, il redirige, mais je termine simplement à la page de connexion à nouveau. Des pensées? – Nate

Questions connexes