2011-11-18 2 views
0

이상한 상황이 있습니다 ...ASP.NET 응용 프로그램 풀이 영구적으로 사용자를 로그 아웃합니다.

ASP.NET 웹 사이트에서 ASP.NET 응용 프로그램 풀이 사용자를 재활용 할 때 로그 아웃됩니다. 이건 괜찮아. 나는 이것이 일어난다는 것을 알고있다. 그러나 사용자가 다시 로그인하여 웹 사이트 내의 링크를 선택하면 즉시 로그 아웃됩니다. 그들은 지속적으로 로그 아웃됩니다. 이 문제의 원인을 알 수 없으며 수정 방법을 모르겠습니다.

이상한 부분은 해결 방법입니다. 로그 아웃중인 사용자가 아닌 다른 컴퓨터 또는 IIS 서버 자체에서 로그인 한 경우 다시 로그인 할 수 있습니다.

어떤 일이 일어나고 있는지 아이디어가 있습니까?

답변

0

문제점을 발견했습니다. ASP.NET 구성의 보안 설정에서 로그인하는 각 사용자는 "설명"필드에 정의 된 역할 중 하나를 가질 필요가있었습니다. 이것은 나에게 매우 이상한 일이지만 트릭을하는 것처럼 보였다. 왜이 일을해야하는지 누구나 알고 있습니까?

3

ASP.NET의 표준 양식 인증은 쿠키 기반이며 세션이 사라지는 경우 영향을받지 않습니다. 하지만 세션에있는 항목을 사용하여 사용자가 로그인했는지 여부를 확인할 수 있습니다. In-process 세션 저장소를 사용하고있는 경우 (그리고 사용자가 생각하는 것처럼 들리는 경우) 응용 프로그램 코드가 이상하게 작동 할 수 있습니다. 폼 인증 쿠키가 여전히 존재하지만 유효하지만 세션 정보가 누락 된 상태가됩니다. 다른 컴퓨터로 이동하는 대신 쿠키를 날려서 다시 로그인 해보십시오. 문제가 해결되었다고 가정합니다.

한 가지 단계는 out-of-process 세션 저장소 (몇 가지 구성 변경으로 사용하기 쉬운 ASP.NET 상태 서버)로 이동하거나 저장된 값에 따라 세션 사용을 완전히 제거하는 것입니다. 쿠키에는 이러한 값이 암호화되지 않은 경우 고려해야 할 보안 관련 사항이 있지만). 그런 다음 응용 프로그램 코드가 로그인 쿠키가 설정되어 있지만 세션 데이터가 유효하지 않은 조건을 처리하는 방법을 자세히 살펴보십시오.

제공되는 정보를 기반으로 한 어둠의 장면이지만 희망적인 것은 당신이나 다른 사람을 올바른 길로 인도하기를 바랍니다.

+0

도움을 주셔서 감사합니다 ...이 문제를 조사하고 있습니다. 그러나 나는 더 많은 정보를 가지고있다. 로그인하는 사용자가 문제를 해결하는 다른 컴퓨터 나 브라우저가 아닙니다. 현재 사용자간에 다른 점을 조사하고 있습니다. – dcinadr

+0

로그인 한 사용자는 .NET 인증 규칙을 따로 사용해야합니다. 나는 그것을하고 싶지 않다. 사용자는 데이터베이스에서 관리됩니다. 매번 설정에 추가하고 싶지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? – dcinadr

관련 문제