2016-09-21 2 views
0

ASP.NET Core 및 CookieAuthentication 미들웨어를 사용하는 사용자에 대해 여러 개의 동시 세션을 방지하려고합니다.동시 사용자 세션 방지 ASP.NET 코어

어떻게해야합니까?

사용자가 로그인하면 앱은 해당 사용자에 대해 발행 된 기존의 모든 쿠키를 무효화하고 효과적으로 "로그 아웃"하는 것이 이상적입니다. 그런 다음 이전 세션은 서버와의 다음 상호 작용시 로그인 페이지로 리디렉션됩니다. 지금까지 나는 이것을 할 방법을 찾지 못했습니다.

나는 documentation에 설명 된대로 사용자 정의 유효성 검사기를 사용하는 방법을 찾아 내려고 노력했습니다.

감사합니다.

답변

0

이것은 ASP.NET 코어를 사용하여 처리 한 방법입니다.하지만이 작업은 관련성이 없습니다. 이렇게하려면 서버에 액세스 할 수있는 상태를 유지해야합니다. 사용자가 로그인 할 때 데이터베이스에 세션 ID를 저장할 수 있습니다. 각 웹 앱 클라이언트는 하트 비트 URL (예 : 몇 분 간격)에 도달해야합니다. 하트 비트의 백엔드는 데이터베이스의 세션 ID를 점검합니다. 그것이 사용자를 위해 활성화 된 것이라면, 모두 좋다. 그렇지 않으면 쿠키를 지 웁니다. 클라이언트 (websocket)에 대한 지속적인 연결을 사용하는 경우 세션이 더 이상 유효하지 않음을 나타 내기 위해 클라이언트에 메시지를 보낼 수 있습니다.

새 세션이 시작된 후에 다른 사용자 세션의 다른 작업을 수행 할 수없는 경우 모든 통화에서 세션을 확인해야합니다 (위에서 설명한대로). ASP.NET Core의 미들웨어 기능이 완벽합니다.

+0

그건 의미가 있습니다. 나는 쿠키 인증을 위해 "내장 된"방법이 더 많아지기를 바랬지 만, 미들웨어를 사용하면 잘 작동 할 것입니다. –