2011-08-25 2 views
3

내 .NET 3.5 웹 응용 프로그램에 로그인하고 동일한 세션 ID를 공유하는 여러 사용자가 있습니다. 이것은 사용자가 동일한 네트워크에있는 다른 컴퓨터에있을 때 가장 자주 발생하는 것으로 보이지만 다른 네트워크의 사용자들 사이에서도 발생하는 것처럼 보입니다. 내 사용자는 서로 1 분 이내에 로그인하고 동일한 세션 ID를 얻습니다. 따라서 사용자 B는 사용자 A의 데이터를보고 있습니다.한 번에 여러 명의 사용자가 같은 세션 ID를 할당했습니다.

우리는 Server 2003 R2 상자에서 여러 작업자 프로세스를 사용하고 있습니다. 세션과 viewstate는 SQL Server에 저장됩니다. 세션은 URL이 아닌 쿠키를 사용하여 ID를 저장하도록 설정됩니다.

이 질문은 이러한 질문에 대한 유사하다, 그러나 어느 쪽도 내 시나리오를 일치합니다

This one turned out to be a false report

This one used IIS7 < --It 특히 이것처럼 보이지만, 내가 사용하지 않는 IIS 6에있어 동적 출력 캐싱, 맞습니까?

내 응용 프로그램이 다른 시스템에 동일한 세션 ID를 할당하는 이유는 무엇입니까? 어떻게 그 일을 막을 수 있습니까?

편집 : 나는 세션이 범인이라고 매우 회의적이지만, 나는 동료들보다 더 중요시되고있다. 코드 문제가있을 가능성이 높지만 로깅하고있는 세션 ID가 동일한 이유를 설명 할 수 없습니다. 예, 로깅 코드에 문제가있을 수 있지만 사용자 B가 사용자 A의 저장된 세션 데이터를받는 이유를 설명하지는 않습니다.

+0

중복 된 sessionID가 사용되는 경우는 거의 없습니다. Session.SessionID를 표시하면 쉽게 확인할 수 있습니다. 가능성이 높습니다. 코드에서 잘못된 것을 수행하고 있습니다. –

+0

그것은있을 법하지 않지만 사실 인 것처럼 보입니다. 우리는 모든 인증을 테이블에 기록하고 SessionID를 포함합니다. – samiz

+0

브라우저를보세요. BROWSER는 단순히 쿠키 인 SessionID가 동일합니까? –

답변

1

정적 (vb.net에서 공유) 코드가 있습니까? 이로 인해 문제가 발생할 수 있습니다. 또한 세션이 실제로 세션에 저장 될 때까지는 실제로 초기화되지 않습니다.

+0

우리는 Session으로부터 데이터를 가져 오기 위해 정적 클래스를 사용합니다. 그러나 이것이 문제라면 상당히 문제가 될 것입니다. 생각한다. 내가 틀렸을 수도있다. 또한 ViewState를 Session에 저장합니다. 이것은 세션을 초기화합니까? – samiz

관련 문제