많은 asp.net 응용 프로그램을 호스팅하는 웹 사이트가 있습니다. 일부는 MVC2로 작성되었으며 일부는 MVC3로 작성되었고 일부는 집안에 작성되지 않았으며 이진 배포 (소스 코드를 찾을 수 있음)되어 ASP.Net 2.0 웹폼으로 작성된 프로그램도 많이 있습니다. 이 모든 사이트에서 우리는 로그인 응용 프로그램의 단일 로그인 페이지를 사용합니다. 우리는이 때문에 모든 응용 프로그램을 공유 할 수 있습니다 :사용자 지정 양식 인증 티켓 확인
- 같은 응용 프로그램 풀
- 키 같은 기계
- 같은 로그인 쿠키 이름
그들은 또한 보안 문제를 공유되어 내 문제, 쿠키 스푸핑 방지. 로그인 쿠키 (아마도 useradata 필드)에 몇 가지 추가 정보 (ip, user agent의 처음 2 바이트)를 추가 한 다음 쿠키를 수락하기 전에 모든 요청에 대해이를 확인하는 것이 좋습니다.
내 질문은 어디 양식 인증 티켓을 확인하고 사용자를로드하고 로그인을 사용하기 전에 몇 가지 추가 사항을 확인하려면이 무시할 수 있습니다.
이 코드를 모든 global.cs에 추가 할 필요가 없으면 일부 플러스 (dll)에 넣고 config 파일의 dll을 참조 할 수 있습니다.
서브 노트에 내가 그 만 내 sessionID와 나의 로그인 쿠키 도움이되었다고 도움이 될 경우 사용자 정의 SessionIDManager보고 추가 :
이 유용한 링크입니다. – Jeff
Global.asax에서 Application_AuthenticateRequest 이벤트를 사용할 수 있습니까? 관련 설명이 여기에 있습니다. http://stackoverflow.com/questions/875472/authenticaterequest-event – SilverlightFox
asp.net이 쿠키에 대한 IP 검사를 수행하지 않는 이유는 그것이 매우 어리석은 생각. 모바일 장치를 사용할 때 (분 단위로 변경 될 수 있음) 또는 사용자 동적 IP가 변경되거나 공유 프록시가 풀링되는 경우와 같이 사용자 IP 주소가 변경되는 조건이 너무 많습니다. 또한 누군가가 방화벽 뒤의 한 컴퓨터에서 같은 방화벽 뒤의 다른 컴퓨터로 쿠키를 복사하지 못하게합니다. 사용자가 사이트를 사용하지 못하게하여 예상치 못한 취약점을 해결하려고하고 있으며 제대로 작동하지 않습니다. –