2012-11-07 4 views
1

내가 개발 한 응용 프로그램 (ASP.Net 4/C#)은 FormsAuthentication.RedirectToLoginPage()를 사용하여 클릭 한 후 사용자를 로그인 페이지로 다시 보냅니다. 로그 아웃 버튼.FormsAuthentication.RedirectToLoginPage가 사이트의 루트에서 응용 프로그램이 작동하지 않을 때

IIS 사이트의 루트에 응용 프로그램을 배포하면 리디렉션이 작동하지 않습니다. 로그 아웃 버튼을 클릭하면 페이지가 다시로드됩니다.

응용 프로그램을 사이트 내의 응용 프로그램 가상 폴더에 배포하면 리디렉션이 작동합니다.

또한 응답하지 않는 Respond.Redirect()를 사용했는데 작동하지 않습니다. 사이트를 처음부터 다시 만들려고했습니다 (행운이 없음).

업데이트 : 다른 컴퓨터에서이 동작을 확인할 수 있었으므로 하나의 웹 서버가 아닌 것으로 확신합니다.

로그 아웃 버튼의 코드 : 도움을

protected void lbLogout_Click(object sender, EventArgs e) 
    { 
     FormsAuthentication.SignOut(); 
     Session.Abandon(); 

     // clear authentication cookie 
     HttpCookie cookie1 = new HttpCookie(FormsAuthentication.FormsCookieName, ""); 
     cookie1.Expires = DateTime.Now.AddYears(-1); 
     cookie1.Path = FormsAuthentication.FormsCookiePath; 
     cookie1.HttpOnly = true; 
     Response.Cookies.Add(cookie1); 

     // clear session cookie 
     HttpCookie cookie2 = new HttpCookie("ASP.NET_SessionId", ""); 
     cookie2.Expires = DateTime.Now.AddYears(-1); 
     Response.Cookies.Add(cookie2); 

     FormsAuthentication.RedirectToLoginPage(); 
     //Response.Redirect("~/login.aspx"); 
     Response.End(); 
    } 

감사합니다!

+0

web.config authentication> forms 노드의 loginurl 속성에는 무엇이 있습니까? – Hardrada

+0

@Hardrada : 내 web.config 인증 및 권한 블록 : ' Wes

답변

0

모두는 내부적으로 Response.Redirect를 호출합니다. 또한 Response.End으로 전화하는 것은 나쁜 습관입니다. Fiddler과 같은 추적 도구를 사용하여 메서드가 호출 될 때 실제 응답에 포함 된 내용을 확인하는 것이 좋습니다. 그것은 브라우저가 받고있는 것을 밝혀 줄 것입니다.

Response.Redirect이 작동하지 않는다는 사실은 더 큰 문제의 표시입니다. HTTP 302가 클라이언트에 반환되지 않으면 ASP.net 파이프 라인의 내용이 리디렉션 응답을 방해합니다.

나단 알덴, 미스터
http://projects.nathanalden.com/JuniorRoute

0

나는 심지어 위의 질문을하지, 웹에 알려지지 않은 장소에 발견,하지만 당신과 동일 내 문제 해결 :

나는이 문제에 대한 해결책을 찾기 위해 거의 마음을 잃었다. 모든 것은 다른 브라우저에서 잘 작동하지만 파이어 폭스와 크롬은 로그인 후 초기 페이지에 사용자를 로그 아웃하지 않습니다.

site.master 파일에 form의 action 속성을 action = "default.aspx"로 설정하면 작동하기 시작했습니다.

탐색기 디버거를 살펴보면 양식 작업에는 기본값이 있지만 크롬 및 Firefox 작업에는 속성이 설정되지 않았습니다. 이 .net 로그인 상태 제어 스크립트 문제가 될 수 있다고 생각합니다.

내 시스템이 작동하기 때문에 더 이상 검색하지 않을 것이지만 비슷한 문제가있는 사람에게 도움이되기를 바랍니다.

관련 문제