.NET MVC4 프로젝트에서 SimpleMembership을 사용하고 있습니다. 개발하는 동안 수동으로 데이터베이스를 조작/재 구축하는 동안 생산 단계에서는 거의 찾아 볼 수없는 오류가 발생했습니다. 그러나이를 해결하고이를 처리 할 수있는 적절한 방법을 찾을 수 없습니다..NET MVC4 SimpleMembership 오류 - "xxx 이름의 사용자를 찾을 수 없습니다"
응용 프로그램에 로그인 한 후 데이터베이스에서 사용자 이름이 변경되거나 사용자 레코드가 완전히 삭제되면 사용자는 더 이상 응용 프로그램의 모든 페이지에 액세스 할 수 없게됩니다. 익명보기 및 로그인 화면이 있습니다. 대신 예외가 throw됩니다. "사용자 이름이 'username'인 사용자를 찾을 수 없습니다.
내 애플리케이션의 모든 페이지는 로그인/로그 오프 제어를 렌더링하는 부분보기를 표시합니다. Request.IsAuthenticated는 데이터베이스의 내용에 관계없이 true를 반환합니다. 앱이 사용자가 여전히 쿠키의 정보를 기반으로 로그인했지만 데이터베이스에 해당 레코드가 없다고 생각하는 것 같습니다. 인증 쿠키를 지우면 해결되지만,이 문제가 발생했을 가능성이있는 사용자에게 제공하려는 지침은 아닙니다.
현재 해결 방법은 Global.asax에서 해당 예외를 찾아서 쿠키를 지우고 로그인 페이지로 리디렉션하는 것입니다. 이것은 나에게 완전히 해커처럼 보인다.
누구나이 시나리오에서 더 좋은 해결책이 있습니까? 이전 .NET 멤버쉽 공급자를 사용하는 것과 같은 문제가 발생하지 않았습니다 ... 내 기대는이 상황을 즉시 처리해야하며 레코드를 변경하지 않아도됩니다./DB에서 삭제되면 사용자는 인증에 실패하고 자동으로 로그인 페이지로 리디렉션되어야합니다.
글쎄 난 아직 상상 프로덕션 환경에서는 수동으로 데이터베이스의 레코드를 삭제하지 않기 때문에 발생하지 않을 가능성이 높습니다. 그것은 호스트를 바꾸는 문제가 아닙니다. 나는 이것을 극복하는 방법을 찾기 위해 더 많은 시간을 소비하지는 않았지만 기본적으로 데이터베이스에 더 이상 존재하지 않는 사용자를 참조하는 브라우저의 인증 쿠키와 관련이있다. 더 우아하게 상자 밖으로. – Gadget27