2013-04-18 2 views
0

asp.net 양식 C#에서 사용자 로그인 화면에 간단한 로그인 화면을 사용하고 있습니다.ASP.NET 간단한 사용자 로그인

나는 사용자가 고유 한 사용자 이름 등을 갖도록 유효성을 알고 있습니다. 이것을 쉽게 할 수 있습니다.

제 질문은 일단 사용자가 로그인하면 다른 페이지 사이에 사용자를 대하는 것입니다. 내가 asp.net Membership and Roles 테이블에 내장 된 것을 사용하지 않는다는 것을 명심하십시오. (왜 제가 사용하고 싶지 않은지 몇 가지 이유가 있습니다.)

내 생각에 일단 사용자가 로그인했다면 단순히 세션 변수를 설정하고 액세스 권한이 필요한 다른 페이지에서 확인하십시오. 유효한 세션이있는 경우 사용자가 페이지를 볼 수있게 할 수 있습니다.

내가 좋아하는 뭔가를 할 수 있습니다 : I는 확실하지 않다

 Session["ValidUser"] = "ValidUser"; 

한 가지를 그 로그인 후 10 시간 동안 사용자보기 사이트. 세션이 시간 초과되지 않도록 조정하려면 어떻게합니까? 또한 세션 변수가 가장 좋은 방법입니다.

감사

+1

보안 쿠키가 잘못되었습니다. 'Secure' 속성을 설정하거나 webconfig 파일에서''를 설정할 수 있습니다. – DGibbs

답변

0

세션 asp.net의 페이지 사이에 데이터를 지속하기위한 표준 방법입니다. 그러나 세션을 10 시간 동안 유지하려고하지 않을 것입니다. 기본적으로 20 분이라고 생각합니다.

시간 제한을 연장 할 수는 있지만 쿠키 또는 이와 유사한 항목을 저장하는 것이 좋습니다.

+0

무엇인가 의미가 있습니까? 보기 상태를 참조하고 있습니까? 또는 쿼리 문자열? –

+0

가장 안전하다고 생각되는 세션 상태이며 어쩌면 10 시간 동안 유지하지 않는 것이 맞을지 모르지만 그 안에 하나의 변수 만 저장하면 OK라고 생각합니다. –

+0

왜 이것이 downvoted인지 확실하지 않습니다. 재치있는 대답 – DGibbs

-1

예,

하면 추가하여 10 시간 이상에 세션 시간 제한을 변경할 수 있습니다, 세션 상태를 사용하면이 asp.net 회원에 내장 사용하지 않을 경우 최적의 솔루션이며, 그것은 가장 안전 이 시간이 귀하의 web.config 파일에 기록됩니다. 시간 제한은 분 단위로 처리됩니다.

<system.web> 
<sessionState mode="InProc" cookieless="false" timeout="600" /> 
</system.web> 
+1

세션은 영구 저장 장치가 아니다. 세션 시간 제한을 늘리면 세션을 열린 상태로 두는 더 많은 기회가 생깁니다. 즉, 서버가 세션 데이터를 더 오랜 시간 동안 저장하는 데 리소스를 낭비하게됩니다. 사이트의 활동에 따라 이것은 치명적인 성능을 현명하게 나타낼 수 있습니다. – DGibbs

+0

세션은 10 시간 동안 보관해서는 안되지만 쿠키를 저장하는 것보다 안전합니다. 회원 인증. 하지만 "세션은 영구 저장 장치가 아닙니다"라는 잘못된 점도 있습니다. –

+1

보안 쿠키에 익숙하지 않습니까? 'Secure' 플래그를 설정하면 쿠키가 비 HTTPS 체계를 통해 요청과 함께 전송되는 것을 막을 수 있으며 클라이언트 측 스크립트에서 읽을 수도 없습니다. 이것은 완벽하게 괜찮습니다. asp.net 멤버십의 기본 구현은 (ASPXAUTH 쿠키입니까?) – DGibbs