반복 쿠키 쿼리 또는 ViewState에 저장? 더 나은 연습은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/167873

  •  03-07-2019
  •  | 
  •  

문제

사용자가 로그인하는 내부 웹 사이트가 있습니다. 이 데이터는 쿠키로 저장됩니다. 거기에서 사용자는 즐거운 길을 계속합니다. 종종 응용 프로그램은 인증 레코드를 쿼리하여 사용자에게 어떤 권한이 있는지 확인합니다.

내 질문은 이것입니다. 필요한 경우 사용자 데이터의 쿠키를 쿼리하는 것이 더 효율적입니까?

편집] 아래에 언급했듯이 세션도 옵션입니다.

도움이 되었습니까?

해결책

ViewState는 그들이보고있는 페이지에만 해당되므로, 일단 메리를 따라 가면 사라졌습니다. 데이터를 지속하는 좋은 방법은 아닙니다.

가장 좋은 방법은 ASP.NET에 내장 된 Forms 인증을 사용하는 것입니다. 사용자 별 정보를 Forms Authentication Ticket의 값으로 밀어 넣을 수도 있습니다. 필요한 모든 것을 유지 해야하는 4000 바이트 (암호화 후)를 넣을 수 있습니다. 또한 사용자가 사이트의 페이지에 대한 액세스를 허용하고 거부 할 수 있으며 필요할 때마다 만료되도록 설정할 수 있습니다.

세션에 저장하는 것은 a입니다 아니 아니 스케일이 매우 저하되어 있기 때문에 (서버에서 리소스를 먹음) 동일한 서버에 여러 브라우저 연결을 가진 사용자에게는 성가신 일 수 있습니다. 때로는 피할 수 없지만 가능하다면 피하기 위해 큰 고통을 겪어야합니다.

다른 팁

개인적으로, 나는 a를 선호합니다 세션 다른 개발자들은 여기에 물건을 저장하기 위해서는 그것이 아니라고 생각하는 것 같습니다.

한 가지 경고가 있습니다. 세션에 사용자의 IP를 저장하고 세션 납치를 피하기 위해 사용자의 현재 IP와 비교할 수 있습니다. 아마도 다른 사람이 세션 납치 방지 방법에 대한 더 나은 아이디어를 가지고있을 것입니다.

세션 데이터를 사용할 수 있습니다. 이렇게하면 저장 한 후에는 쿼리 문자열을 변경하여 사용자가 저장 한 후에는 바보를 속일 수 없다는 것을 알 수 있습니다.

쿠키 방법을 사용하겠습니다. 세션은 괜찮지 만 Recompile에서 ASP.NET에 의해 폐기되며, 세션 후에도 지속하려면 비 세션 쿠키를 사용해야합니다. 또한 Stateserver를 사용하는 경우 본질적으로 동일한 작업을 수행합니다 (DB의 상점 세션). 세션은 빠르고 더러운 수정과 같습니다. 실제 남자는 쿠키를 사용합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top