2009-08-12 31 views
0

私は1つのアプリケーションを持っています。成功したログインユーザーの後にHome.aspxにリダイレクトされます。 Response.Redirect( "Home.aspx")を試してみるとうまくいきませんが、試してみると FormsAuthentication.RedirectFromLoginPage(TextBox1.Text、false); ..働いています。 私の質問はなぜResponse.Redirect()が動作していないのですか? FormsAuthentication.RedirectFromLoginPageはログイン以上のことをしていますが、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:

あなたならば、あなたのコメントで質問に答えるためにRedirectFromLoginPageの2番目のパラメータとしてtrueを渡すと、クッキーは期限切れにならないように設定され、再度ログインする必要はありません。

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

ありがとうございました。 私は1つの質問がある、成功したログイン後に私はブラウズを開始する次回私は直接Home.aspxにLogin.aspx(stackoverflowと同じ)redirectrdする必要があります。あなたはいくつかの例やリンクを張ることができますか? – Wondering

+0

それは魔法のように働いています。ありがとうございます。 – Wondering

+0

FormsAuthentication.SetAuthCookieヘルプはここにありませんか? –

関連する問題