2009-08-12 7 views
0

Ich habe eine Anwendung, wo nach erfolgreicher Anmeldung Benutzer zu Home.aspx umgeleitet wird. Jetzt, wenn ich Response.Redirect ("Home.aspx") versuche, funktioniert es nicht, aber wenn ich versuche, FormsAuthentication.RedirectFromLoginPage (TextBox1.Text, false); .. es funktioniert. Jetzt ist meine Frage, warum Response.Redirect() nicht funktioniert? Ich weiß, FormsAuthentication.RedirectFromLoginPage viel mehr als nur Login, es setzt auch Cookie, und leitet auch auf Login-Seite, aber warum Redirct() funktioniert nicht? web.config:Warum Response.Redirect ("Seitenname.aspx") nicht funktioniert

<authentication mode="Forms"> 
    <forms loginUrl="LogIn.aspx" defaultUrl="Home.aspx" path="/"></forms> 
</authentication> 
<authorization> 
    <deny users="?"/> 
</authorization> 

Kann jemand helfen?

Antwort

4

Sie haben die Antwort schon ziemlich.

Response.Redirect legt den Authentifizierungscookie nicht fest. Wenn Home.aspx geladen wird, schlägt die Authentifizierung fehl und Sie werden zurück zur Anmeldeseite geleitet.

response.redirect nutzen zu können, werden Sie das Cookie selbst verwalten müssen, ein Beispiel aus http://www.4guysfromrolla.com/webtech/110701-1.3.shtml ist:

Dim cookie As HttpCookie = FormsAuthentication.GetAuthCookie(UserName.Text, _ 
         chkPersistCookie.Checked) 
Response.Cookies.Add (cookie) 
Response.Redirect(FormsAuthentication.GetRedirectUrl (UserName.Text, _ 
         chkPersistCookie.Checked)) 

EDIT:

die Frage in Ihrem Kommentar zu beantworten, wenn Sie Als den zweiten Parameter an RedirectFromLoginPage gilt true, dann wird der Cookie so eingestellt, dass er nie abläuft und Sie sich nicht erneut anmelden müssen.

FormsAuthentication.RedirectFromLoginPage(TextBox1.Text, true) 
+0

Danke Patrick für deine Hilfe und den Link :-). Ich habe eine Frage, sagen wir nach erfolgreicher Anmeldung Ich habe das Fenster geschlossen.So nächste Mal, wenn ich anfange zu surfen, sollte ich direkt zu Home.aspx statt Login.aspx weitergeleitet werden (wie stackoverflow). Nun, wie dies zu implementieren. Kannst du ein Beispiel nennen oder verlinken? – Wondering

+0

Es funktioniert wie eine Magie. Danke. – Wondering

+0

Wird FormsAuthentication.SetAuthCookie hier nicht helfen? –