설정 : 템플릿에서 구운 오는 전형적인 로그온/로그 오프 물건MVC2 및 세션 시작 이벤트
계정 컨트롤러. 로그온 페이지에서별로 수정하지 않습니다. 커스텀 멤버십 공급자 (SQL)를 사용하고 있지만, 여기서 내가하려고하는 일에 영향을 미치지 않는다고 생각합니다.
요구 사항 :는
클라이언트는 전체 사용자가 동시 사용자 및하지를 제한하여 라이선스를 처리하고자합니다. 그래서,이 post here을 참조한 후에, 나는이 일을 내가해야 할 일에 착수했다. 이는 우리 애플리케이션에 등록한 각 조직의 최대 및 현재 사용자를 추적하는 것입니다. 문제는 없습니다. 키가 조직 ID이고 조직의 현재 또는 최대 사용자 인 값인 해시 테이블 인 응용 프로그램 ("최대")과 응용 프로그램 ("현재") 만 있으면됩니다. Session_Start에서 현재 사용자 수를 늘리고 최대 값을 초과하는지 확인하고 a) 오류 페이지로 리디렉션하거나 b) 필요한 작업을 계속하도록합니다. Session_End에서 카운트를 감소시킵니다.
문제점 :
formsService.signIn를 사용하여, 실제로 세션에서 무엇을 저장됩니까? 세션 ID를 제외하고는 session_start에서 내 세션에 대한 정보를 수집 할 수 없습니다. 따라서 사용자 추적을위한 정확한 숫자를 늘릴 수는 없습니다. 세션을 시작하기 전에 session_start가 이미 시작되었으므로 세션에 변수를 추가 할 수 없습니다.
IMO, 웹 사이트의 동시 사용자를 찾는 것은 거의 불가능합니다. 페이지가로드되면 웹 서버는 사용자가 아직 웹 사이트에 있는지 알 수 없습니다. – ZippyV
알다시피, 나는 그 사고 방식에 대해서도 잘 견해를 가지고있다. (정확한 카운트를 확신 할 수없고, 계정이 있어도 PPP가 일을하지 못하게 할 수있다.)하지만 하루가 끝날 때, 나는 내 자신의 청구서를 지불하지 않습니다 :/ – Tommy