다음과 같은 문제가 있습니다. ASP.NET 웹 앱을 다시 게시하면 세션이 재설정되어 NullReferenceException이 발생할 수 있습니다. FormsAuthentication.RedirectToLoginPage()가 수행하지 않습니다.
내 페이지를 확인,이 정보의 존재를 것을 방지하고 널 (null)의 경우 로그인 페이지 (양식 인증)로 사용자를 리디렉션, 그래서 전화 했어하려면void LogOut()
{
Session.Clear();
Session.Abandon();
User = null;
FormsAuthentication.SignOut();
FormsAuthentication.RedirectToLoginPage()
}
를하지만 가끔은 도움이되지 않습니다 , 그래서 해결 방법을 찾을 :
Response.Redirect(FormsAuthentication.LoginUrl);
를하지만 나는 그것이 (내가 수동으로이 동작을 모방하지 않으려는) 있었으면 무엇 returnUrl를 추가하지 않습니다.
첫 번째 방법이 예상대로 작동하지 않는 이유를 파악하고 싶습니다.
감사합니다. 무슨 일이 일어나고 (그리고 무엇이 아닌지) :'RedirectToLoginPage()'는 아무 일도하지 않습니다 - 코드가 먼저 실행되고 NullReferenceException이 발생합니다. 현재 사용자 (일부 연결된 객체, 예 : ClientCompanyName)에 대해 더 많은 정보를 유지하기 때문에 – abatishchev
내 세션 시간 초과 설정 = 양식 인증 시간 초과 (web.config를 통해). 사용자가 자동으로 양식 승인을 통해 로그인 페이지로 리디렉션되며 예상대로 작동합니다. 하지만 내 시나리오는 더 많은 개발/배포 프로세스 관련 : 새 버전을 게시 한 후, 나는 로그인 페이지로 리디렉션되고 싶지 않으며 NullReferenceException을 얻지 않습니다. – abatishchev