2009-08-12 2 views
0

У меня есть одно приложение, в котором после успешного входа в систему пользователь будет перенаправлен на Home.aspx. Теперь, если я попробую Response.Redirect («Home.aspx»), он не работает, но если я попробую FormsAuthentication.RedirectFromLoginPage (TextBox1.Text, false); .. его работа. Теперь мой вопрос: почему Response.Redirect() не работает? Я знаю, что FormsAuthentication.RedirectFromLoginPage делает гораздо больше, чем Login, он также устанавливает cookie, а также перенаправляет на страницу входа, но почему Redirct() не работает? web.config:Почему Response.Redirect («Pagename.aspx») не работает

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

Может кто-нибудь помочь?

ответ

4

У вас уже есть ответ в значительной степени.

Response.Redirect не устанавливает cookie аутентификации, поэтому при загрузке Home.aspx он не выполняет проверку подлинности и перенаправляет вас на страницу входа.

Чтобы использовать response.redirect, вам придется управлять куки самостоятельно, пример из http://www.4guysfromrolla.com/webtech/110701-1.3.shtml является:

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

EDIT:

Чтобы ответить на этот вопрос в свой комментарий, если вы передайте true как второй параметр в RedirectFromLoginPage, тогда cookie будет установлен как никогда не истечет, и вам больше не нужно будет входить в систему.

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

Благодарим Патрика за помощь и ссылку :-). У меня есть один вопрос, скажем, после успешного входа в систему. Я закрыл окно. Так что в следующий раз, когда я начну просмотр, я должен быть непосредственно перенаправлен на Home.aspx, а не на Login.aspx (так же, как stackoverflow). Теперь как это реализовать. Можете уставить пример или ссылку. – Wondering

+0

Он работает как волшебство. Спасибо. – Wondering

+0

Не будет FormsAuthentication.SetAuthCookie помочь здесь? –

Смежные вопросы