2010-01-28 6 views
1

다른 서비스의 사용자 이름/해시 암호가있는 웹 사이트에서 작업하고 있습니다. 누군가가 성공적으로 로그인하면 폼 인증 쿠키를 FormsAuthentication.SetAuthCookie으로 설정합니다.ASP.NET FormsAuthentication 단독 로그인

내 고객은 동일한 자격 증명으로 기록 된 여러 사람을 좋아하지 않습니다. 그들은 현재 로그인 한 클라이언트를 무효화하기 위해 로그인을 원합니다.

FormsAuthentication에는 서버에 "이 이름으로 다른 쿠키를 무효화"할 방법이 없습니다. KB900111은 서버가 유효한 쿠키 목록을 유지하지 않음을 나타냅니다. 그래서 내 접근 방식은 좋지 않습니다.

대체 방법은 무엇입니까? 양식을 승인 할 시간?

+0

가능한 중복 항목 : http://stackoverflow.com/questions/2025908/avoid-concurrent-login-logout-former-login-session-in-asp-net-membership http://stackoverflow.com/questions/303420/보장 전용 사용자 로그인 - asp-net-membership-provider를 사용하여 http://stackoverflow.com/questions/937048/asp-net-membership-preventing-people-logging-in-as-the -same-user-on-different-mac 문제는 좋은 검색어를 찾는 것이 어렵다는 것입니다. – Greg

+0

당신은 맞습니다 - 나는 속임수를 찾기 위해 올바른 검색 용어를 찾지 못했습니다. 내가 '다른'로그인을 걷어차기를 원할 때 나의 질문은 미묘하게 다릅니다. – TesterTurnedDeveloper

답변

0

반드시 그렇지는 않습니다. Forms auth는 여전히 원하는 구운 기능을 제공합니다. 어쩌면 각 사용자가 처음 로그인 할 때 Guid를 생성하여 발급 할 수 있으며이를 서버 측과 쿠키 (선호하는 보안 티켓)에 저장할 수 있습니다. 요청이있을 때마다 사용자가 올바른 자격 증명뿐만 아니라 동일한 컴퓨터 및 브라우저 (사용자가 로그인 할 때 사용자에게 발급 한 쿠키를 기반으로)를 사용하고 있는지 확인합니다. 물론 Guid가 어느 시점에서 만료되는지 확인하고 사용자가 로그 아웃 할 때이를 지워야합니다.

+0

guid serverside/cookie 비트를 따르고 있습니다. "같은 기계 및 브라우저"에 대한 테스트는 어디서합니까? – TesterTurnedDeveloper

+0

이벤트 중 하나에서 Global.asax.vb/.cs 파일에서이 작업을 수행 할 수 있습니다. 아마도 AuthenticateRequest 이벤트를 시도 할 것입니다. 이렇게하면 모든 요청이 검증되고 유효성 검사가 단일 위치에서 제어 될 수 있습니다. –

관련 문제