오랫동안 로그인 한 사용자를 유지 보수하는 방법을 알고 싶습니다. 현재 사용자 인증 및 로깅 상태 유지를 위해 마스터 페이지에서 세션을 사용하고 있지만 짧은 시간 내에 세션이 만료됩니다. 나는 gmail, facebbok, stackoverflow 및 많은 사이트와 같은 많은 사이트에서 보았습니다. 사용자가 로그인하면 다시 로그인하지 않고 몇 시간 동안 사이트를 볼 수 있습니다.Maintian 사용자가 오랫동안 로그인했습니다.
답변
단지 세션의 제한 시간을 증가하기에 충분하다.
당신의 위치가 약간 혼잡 한 경우, 당신은 세션에서 많이 저장 특히, 다른 것들에 사용될 수 많은 메모리를 채울 세션 타임 아웃을 증가. 세션이 작동하고 로그인 상태를 유지하려면 사용자 브라우저에 설정된 쿠키의 세션 토큰과 일치하는 세션이 있어야합니다. 이유 세션이 만료
하나는 결코 돌아 오지 않는다 당신의 위치에 그 방문자 또는 어쨌든 세션을 필요로하지 않는 검색 엔진 봇에 속하는 메모리를 차지 세션을 제거하는 것입니다.
이 문제에 대한, 페이스 북과 구글과 같은 사이트는 귀하의 브라우저에있는 쿠키의 긴 해시 토큰을 저장 보상합니다. 그들은 서버에이 토큰 (또는 해쉬 된 버전)을 저장하고이를 사용자 계정과 연결합니다. 서버가 돌아 왔을 때 서버가 당신이라는 것을 알고 있고 새로운 세션을 만들 수 있습니다 (FB/Google이 세션을 사용한다고 가정 할 때).).그래서, 요약, 임의의 텍스트의 긴 문자열을 포함하는 (확인 그것의 도메인을 제한하고 당신은 SSL 등을 사용하는 경우 보안) 쿠키를 생성합니다. 데이터베이스에 임의의 텍스트 (또는 해시)를 속한 사용자 ID와 함께 저장하십시오. 사용자가 귀하의 사이트를 방문 할 때마다 세션이 만들어지지 않을 때마다 해당 쿠키 값과 데이터베이스를 비교하고 행 중 하나와 일치하는 경우 사용자를 로그인하십시오.
희망이 있습니다. @benjamin 말했듯이
귀중한 답변. 나는 오랜 시간 동안 세션을 사용하여 많은 메모리를 사용하고 사이트 속도를 줄이는 것을 읽었습니다. 귀하의 게시물에서 나는 (쿠키 ID, 사용자 ID, 만료 시간 및 ..)와 함께 쿠키 테이블을 만들었습니다. 사용자가 처음 로그인 할 때 사용자 브라우저뿐만 아니라 테이블에 사용자 ID가있는 쿠키를 삽입합니다. 사용자가 다시 방문하여 사이트 페이지를 열면 사용자 ID 당 행을 확인하고 사용자가 로그인 할 수 있도록 허용하십시오. 이것으로부터 우리는 또한 로그 아웃 (만료 시간) 즉 약한 하나를 처리 할 수 있습니다. 쿠키를 브라우저에 저장하는 방법, 브라우저에서 쿠키를 읽는 방법을 확인하는 방법입니다. – Kumal
사용하는 서버 측 언어에 따라 달라집니다. 요즘 PHP를 좋아하는 사람이 많으므로 쿠키가 쿠키를 처리하는 방법을 설명하는 페이지는 http://php.net/manual/en/features.cookies.php입니다. 쓰려면 setcookie()를 사용하고 읽으려면 $ _COOKIE를 사용합니다. 일반적으로 모든 스크립팅 언어는 정확히 똑같은 표현을 가지고 있기 때문에 똑같은 방식으로 작동합니다. –
OK 브라우저에서 쿠키를 읽고 쓰는 법을 배웠습니다. 안전한 지, 모든 브라우저에서 지원하는지, 데이터베이스에서 쿠키에서 추출한 userid를 다른 페이지로 전달하는 방법에 대해 더 많은 의구심이 있습니다. 사용자 ID를 얻기 위해 쿠키를 사용하십시오. 인덱스 페이지로드 속도 또는 성능에 영향을 미칩니 까? 인증을 위해 사용자 ID, 만료 시간 및 기타와 같은 쿠키에 저장할 수있는 항목은 무엇입니까? – Kumal
Sessionstate 제한 시간 속성은 분 단위로 표시됩니다. 웹 양식이 지속적으로 24 시간 동안 유휴 상태 인 경우 webconfig 파일에서
...
<system.web>
.......
<sessionState timeout="1440"></sessionState>
</system.web>
세션이 만료 얻을 것이다.
는 당신은
<system.web>
은 자세한 내용은 http://msdn2.microsoft.com/en-us/library/h6bb9cz9%28vs.80%29.aspx를 참조
내에서이 sessionState의 블록을 가질 수 있습니다. 귀하의 사이트는 일주일에 몇 백 방문자를 얻을 경우을 설정할 수 있습니다. 얼마 동안은 잘 작동하지만 시간 제한 전에 세션이 만료됩니다. –
그 이유를 게시하고 FormsAuthentication을 시도하고 누군가가 아래로 투표를하는 경우 영구 쿠키를 – Kumal
예, 저 당신의 시간 제한을 유지한다. 정말 낮아. 5 분 정도로 낮습니다. 이렇게하면 서버 메모리가 너무 많아지지 않습니다. 실시간 세션을 유지하려면 자바 스크립트 setInterval
을 사용하여 매 3-4 분마다 서버를 폴링하거나 web.config에서 slidingExpiration="true"
을 사용하십시오.
사용자를 다시 방문하는 경우 (@ 벤자민의 제안을 구현하는 데 어려움이있는 경우) 로그인 페이지에 "내 정보 기억"확인란을 사용하는 것이 좋습니다. 그냥 수동으로 FormsAuthentication
쿠키를 재사용 : isRememberMe
체크 박스 값입니다
If allIsWell Then
FormsAuthentication.SetAuthCookie(userName, isRememberMe)
End IF
합니다. true 인 경우 영구 쿠키가 설정됩니다.Global.asax에있는 그런
:
If HttpContext.Current.User.Identity.IsAuthenticated Then
'Recreate user session contents here
End If
- 1. 사용자가 잘못된 사용자로 로그인했습니다
- 2. Firebase 사용자가 이미 로그인했습니다.
- 3. Facebook 확인 사용자가 iOS에 로그인했습니다.
- 4. 다른 사용자의 프로필에 액세스하는 사용자가 로그인했습니다.
- 5. 새로 생성 된 사용자가 자동으로 ASP.NET에 로그인했습니다.
- 6. SharePoint 2010 - 모든 사용자가 시스템 계정으로 로그인했습니다.
- 7. 로그 아웃 후 Facebook 사용자가 여전히 로그인했습니다.
- 8. Cakephp : cakephp에 다른 플랫폼으로 다른 사용자가 로그인했습니다.
- 9. Concrete5 5.6.3.4 사용자가 잘못된 사용자로 로그인했습니다
- 10. Windows 8 용 Java System.properties는 사용자가 로그인했습니다.
- 11. Laravel 4 : 사용자가 로그인하지 않았습니다. 로그인했습니다.
- 12. Joomla 사용자가 얼마나 오랫동안 로그인했는지 확인하는 방법
- 13. Joomla가 사용자 메뉴에 로그인했습니다.
- 14. Flex Inheriting User에 로그인했습니다.
- 15. 강제로 로그 아웃하는 사용자가 현재 wss 3.0에 로그인했습니다 - 방법?
- 16. CFML : 타사 포럼 플러그인에서 인증 된 사용자가 '로그인했습니다'
- 17. windows mobile-leave 사용자가 24 시간 동안 로그인했습니다.
- 18. 모든 사용자가 사용자 역할/사용자 이름에 관계없이 admin 사용자로 로그인했습니다.
- 19. 삭제 된 사용자가 다른 브로슈어에서 삭제 한 후에도 로그인했습니다.
- 20. 부호없는 int로 로그인했습니다.
- 21. foreach가 powershell에 로그인했습니다.
- 22. 프로그래밍 방식으로 PureVolume.com에 로그인했습니다!
- 23. jade 템플릿 엔진 인사말이 로그인했습니다.
- 24. 로컬 앱 오류로 Facebook에 로그인했습니다.
- 25. 사용자가 페이지를 얼마나 오랫동안 좋아하는지 확인하는 방법은 무엇입니까?
- 26. 페이스 북은 drupal 사용자로 로그인했습니다
- 27. 이메일을 보내는 동안 SMTP 서버에 계속 로그인했습니다.
- 28. iPhone에서 Gmail 계정을 사용하여 로그인했습니다.
- 29. Varnish 3 캐싱 페이지에도 로그인했습니다.
- 30. 페이스 북이 다른 도메인으로 로그인했습니다
당신은 내가 내 사이트 중 하나에 하나를 이전하려고하는 이유 .. –