2012-01-20 5 views
1

로그인 한 후 사용자 이름 암호로 로그인 한 내 웹 사이트 사용자가에서 로그인하지 못하도록하는 방법을 찾고 있습니다. 여러 컴퓨터. 사실 나는 사용자가 로그온하는 컴퓨터를 등록하고 사용자 이름, 암호를 서로주고받는 것을 막을 방법을 찾고 있습니다. 나는 asp.net과 실제로 모든 웹 사이트 프로그래밍 언어에서 클라이언트의 네트워크 카드의 MAC 주소를 탐지하는 것이 불가능하다는 것을 알았다. 그 사이에 httpcontext.current를 통해 검출 될 수있는 browsername와 IP 주소 같이 사용자는 동적 인 ips가 있기 때문에 나를 위해 유용하지 않다. 또한 컴퓨터 이름보다 엄격한 무언가가 필요합니다. 불행한 것이 아니기 때문입니다.asp.net에있는 n 개 이상의 컴퓨터에서 사용자가 로그인하는 것을 방지하는 방법

하드웨어 토큰 기반 솔루션을 사용하지 않고 어떤 솔루션을 사용할 수 있는지 안내해주십시오. 감사합니다.

+0

쿠키를 사용하여 어떤 종류의 플래그를 저장할 수 있습니까? –

+0

예. 솔루션이있는 경우 사용자 컨트롤 메커니즘을 변경하여 구현하십시오. – Farshid

+0

실제로 나는 5 대의 컴퓨터에 사용자를 제한하기 위해 아이튠즈가 사용하는 기계처럼 ash.net에서 sth를보고있다. – Farshid

답변

1

당신이 할 수있는 최선의 방법은 한 사용자가 시간 초과로 로그인하고 각 요청에 대해 시간 초과를 업데이트 할 때 (데이터베이스 또는 메모리 캐시에 있음) 기록하는 것입니다. 그런 다음 "isLoggedIn"값이 현재 (즉, 만료되지 않은) 동안 로그인하라는 메시지를 표시합니다. 또한 명시 적 로그 아웃시 시간 초과가 만료되어야합니다.

이론적으로 sessionExpire 이벤트에서 시간 초과가 만료 될 수도 있지만 이벤트가 특히 안정적이지 않은 것으로 나타났습니다. 따라서 우리는 시간 초과 시나리오를 사용하여 더 짧은 시간 제한을 원했습니다.

더 엄격한 유가 증권의 경우, 세션 ID와 브라우저 지문을 숨길 수 있습니다. 시간 초과와 세션 시간 초과 사이에 들어가는 사용자와의 싸움을 면할 수 있습니다.

그러나 장기적으로 사용자가 계정을 공유하지 못하도록하는 100 % 안전한 방법은 없습니다. 할 수있는 최선책은 에 "중복 사용자"시나리오를 제한하여 같은 계정이 두 번 이상 동시에 로그온하도록 만드는 것입니다.

마지막으로, 동적 IP는 일반적으로 자주 변경되지 않으므로 (응용 프로그램 세션에서 변경되지 않을 수도 있음) 일 수 있습니다.은 퍼지 (fuzzy) 방식으로이를 활용할 수 있습니다.

+0

도움 주셔서 감사합니다. 나의 가장 큰 관심사는 동시 로그온이 아니라 계정 공유이기 때문에 개발중인 웹 사이트는 사용자가 지불해야하는 귀중한 정보를 담고 있으며, 주요 감사원은 대학생이기 때문에 계정을 공유한다는 사실을 알고 있습니다. – Farshid

+0

사람들이 자신의 계정을 공유하는 것을 막을 방법이 없습니다. 적어도 믿을만한 것은 아닙니다. 사람들이 공유하기를 원하면 모든 시스템을 간단하게 작동시킬 수 있습니다.당신은 그다지 걱정하지 않고, 대신에 좋은 가격의 서비스/제품을 제공하는데 초점을 맞 춥니 다. 공정한 가격으로 사람들이 그것을 지불 할 수있게 될 것입니다. – cdeszaq

관련 문제