2009-08-12 2 views
0

성공적인 로그인 사용자가 Home.aspx로 리디렉션되는 응용 프로그램이 하나 있습니다. 이제 Response.Redirect ("Home.aspx")를 실행해도 작동하지 않지만 시도해 보면 FormsAuthentication.RedirectFromLoginPage (TextBox1.Text, false); .. 작동합니다. 내 질문에 Response.Redirect()가 작동하지 않는 이유는 무엇입니까? FormsAuthentication.RedirectFromLoginPage가 Login 이상을 수행한다는 것을 알고 쿠키를 설정하고 로그인 페이지로 리디렉션하지만 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는 인증 쿠키를 설정하지 않으므로 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)) 

편집 : 당신이 경우

이, 당신의 의견에 질문에 대답하려면 RedirectFromLoginPage의 두 번째 매개 변수로 true를 전달하면 쿠키가 만료되지 않도록 설정되므로 다시 로그인 할 필요가 없습니다.

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

감사합니다. 패트릭에게 도움과 링크 :-). 나는 한 가지 질문이있다. 성공적으로 로그인 한 후에 창을 닫았다 고 말할 수있다. 다음에 브라우징을 시작할 때 나는 직접 login.aspx (stackoverflow와 같음)가 아닌 Home.aspx로 redirectrd되어야한다. 이제 어떻게 구현해야하는지. U 예제 또는 링크를 추가 할 수 있습니까? – Wondering

+0

마술처럼 작동합니다. 감사합니다. – Wondering

+0

FormsAuthentication.SetAuthCookie 도움말은 여기에 없습니까? –

관련 문제