2013-07-13 2 views
0

MVC4 Simple Membership 공급자를 사용하는 응용 프로그램이 있습니다. 몇 가지 보안 정보를 처리하는 데 필요한 일부 세션 정보를 설정하는 Login 메소드에 몇 가지 코드를 추가했습니다.MVC4 간단한 멤버쉽 자동 로그인은 언제 발생합니까?

브라우저를 닫고 다시 돌아 오면 MVC는 여전히 왼쪽 상단 구석에 로그인 한 것을 보여주고 User.Username 속성은 채워지지만 내가 여기에 넣은 여분의 물건은 분명히 ' 티.

이 "인증"은 언제 또는 어디에서 발생합니까? Global.asax의 Application_Start에서 요청 및 사용자 객체를 검사 해 보았습니다. 그러나 실행될 때 null이 유지되었습니다.

인증 파이프 라인에 다른 메소드가 있는데, 내가 필요로하는 것을 추출하기 위해 메소드를 오버라이드하거나 호출 할 수 있습니까?

감사합니다.

답변

1

"내 계정 정보 기억"기능은 단순 회원 자격 또는 다른 회원과 아무 관련이 없습니다. 실제로 사용할 때 "로그인"이 발생하지 않습니다. 이 쿠키는 사용자 시스템에 저장되는 영구 쿠키이며 페이지가로드 될 때 쿠키가 읽혀집니다. 올바르게 암호화 된 데이터가 포함되어 있으면 회원 유효성 검사를 다시 거치지 않고도 사용자는 인증 된 것으로 간주됩니다.

수행해야하는 작업은 수행 방법에 따라 다릅니다. 세션에 데이터를 저장하는 경우 언제든지 세션을 재설정 할 수 있고 세션이 인증에 연결되어 있지 않기 때문에 상관 없습니다. 필요한 데이터가 세션에 있는지 확인하고 그렇지 않은 경우 다시 작성하십시오. 이렇게하면 나중에 다시 돌아 오거나 세션이 재설정 될 때 작동합니다.

확장 성이 좋지 않으므로 세션을 사용해서는 안됩니다. 더 나은 선택은 Controller 클래스의 OnAuthorization 메소드에 연결하여 거기에 필요한 것을 수행하는 것입니다. 세션의 상태에 관계없이 모든 페이지 요청에서 완료됩니다.

또 다른 옵션은 사용자 지정 AuthorizationFilter를 만드는 것입니다.