2010-03-02 5 views
0

모든 사용자에게 정보를 표시하는 웹 사이트가 있습니다. 그러나 로그인 한 경우 더 많은 정보와 페이지에 액세스 할 수 있습니다.특정 페이지를 잠그고 다른 페이지를 열어 두십시오.

일부 세션 변수를 사용하여 각 페이지에 포함시킬 수 있습니까? 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

또한 '사용자 정보 기억'확인란의 일종 인 사용자 로그인 상태를 유지하는 가장 좋은 방법은 무엇입니까? hdd에 쿠키를 저장 하시겠습니까?

+0

나는 세션에서이를 저장하지 않으므로 누군가가 세션을 조작하고 더 많은 권한을 얻기 위해이 변수를 변경할 수 있습니다. 사용자 DB에 권한 필드를 만들고 모든 페이지에 권한 필드를 만들 수 있습니다. 이렇게하면 모든 사용자에 대해 모든 페이지를 처리 ​​할 수 ​​있고 다양한 사용자 권한을 처리 할 수 ​​있습니다. 당신은 사용자 그룹을 사용하는 것을 고려할 수 있습니다, 원칙은 동일합니다. 보안이 아직 부족하지만 내 견해가 조금 나아졌습니다. –

+1

사용자는 세션 변수에 대한 액세스 권한이 있다고 가정합니다. 악의적 인 공격자가 할 수있는 일은 세션을 가리키는 쿠키를 변경하여 사용자 설정을 도용하는 것입니다. 그는 여전히 웹 페이지 디자이너가 제공하는 것 외에는 세션 변수에 액세스 할 수 없습니다. – dar7yl

답변

0

첫 번째 질문에 답하십시오. 가장 쉬운 방법은 세션에 저장 한 내용을 기반으로 특정 컨트롤의 표시 여부를 설정하는 코드가있는 것입니다.

이렇게 복잡해지기 때문에 비즈니스 규칙에 가장 적합한 것이 무엇인지 파악할 수 있습니다.

두 번째 질문에 답변하십시오. 나중에 참조 할 수있는 정적 쿠키에 저장해야합니다. 개인적으로 로컬 데이터베이스에 복사본을 저장하는 쿠키에 GUID를 저장하는 것이 좋습니다. 누군가가 사이트를 다시 방문하면이 쿠키를 찾습니다. GUID가 존재하고 데이터베이스에있는 누군가와 일치하는 항목이 있으면 자동 로그인합니다.

0

ASP.NET 멤버십을 사용하는 것이 좋습니다. 그것에는 "저를 기억하십시오"기능을 가진 로그인 컨트롤이 있습니다. 또한 web.config를 사용하여 페이지에 대한 액세스를 제한 할 수 있습니다.

이 주제에 기사의 좋은 시리즈 : http://www.4guysfromrolla.com/articles/062508-1.aspx

0

회원 및 인증이 모든 웹 응용 프로그램의 모든 사이의 기본적인 욕구 중 하나는 .NET 프레임 워크가 제공하고 해당 기능이 튜토리얼에서 봐, ASP.NET 회원입니다 대부분의 개발자가 유용하다고 생각한 가장 큰 것 중 하나입니다. 원하는 경우 자신의 인증 및 인증을 구현할 수 있지만 사용하도록 권장합니다. Authentication and Authorization in ASP.NET

관련 문제