이전 작업 (ASP.NET webforms)에서 HttpContext.Current.Session
개체를 사용하여 현재 사용자 세션에 대한 보안 관련 사용자 데이터를 보관했습니다.webforms 세션 값을 MVC 베어러 토큰에 저장해야합니까?
Session("userID") = 4525
Session("customerId") = 123
Session("importantValue") = "ABC"
WebAPI 2에서 상당히 많은 것을 배웠으므로 이제 MVC를 배우기 시작합니다. 나는 끊임없이
Session
그 및/또는HttpContext.Current
이 MVC로 피해야한다 읽고 ... ...하지만이 아니다 있어요 간단한 대안에 선명도가 많이. 어떤 사람들은TempData
을 사용한다고 말하지만 다른 쿠키는 단점을 가지고 있습니다.내 응용 프로그램이 데이터베이스가 많아서 모든 요청에 대해이 값을 다시 읽으려면 데이터베이스에 손을 대지 않는 것이 좋습니다. WebAPI2에는 쿠키로 직렬화되는 전달자 토큰이 있습니다. Identity 토큰이이 데이터를 보관할 수있을만큼 안전하고 사용자 조작 (SSL을 통해 사용되는 경우)을 방지합니까?
이것은 개발자의 다양한 "취향"으로 인해 쉬운 질문이 아닙니다. 만약 당신이 무엇을하고 있는지 안다면,'Session' 객체를 사용할 때 아무런 해가 없습니다. –
지금까지 세션을 사용하지 말아야한다고 주장하는 출처로 링크하십시오. 고려해야 할 사항이 있지만 결코 절대로 말하는 것은 아닙니다. 해당 출처가 세션을 사용하지 않아야하는 이유를 유발하지 않으면 계속해서 읽지 마십시오. 특정 시나리오에서 세션을 사용하지 않아야하는 이유는 완벽하지만 그 시나리오가 귀하에게 적용되는지 평가하는 것은 귀하에게 달려 있습니다. – CodeCaster
"세션 하이재킹"이 반복되는 이유. 그러나 약간의 비틀기와 함께 이것은 완전히 제거 될 수 있습니다. 또 다른 것은 저장해야하는 데이터의 양입니다. 수백 메가 바이트에 이르는 데이터를 가지고 있다면 기존 캐시 메커니즘을 사용하는 것이 좋습니다. –