사람들이 ASP .Net 웹 응용 프로그램에서 HTTPContext.Current.Session 상태를 사용하지 못하게하는 몇 가지 장소를 읽었습니다.내 ASP .Net MVC 응용 프로그램에서 HTTPContext 세션 상태를 사용하여 양식을 이동해야하는 이유는 무엇입니까?
누군가가 최근 추세의 추론을 설명 할 수 있습니까? 거기에는 기술적 인 이유로 확실한 이유가 있습니까?
덕분에, 존은 말하기
사람들이 ASP .Net 웹 응용 프로그램에서 HTTPContext.Current.Session 상태를 사용하지 못하게하는 몇 가지 장소를 읽었습니다.내 ASP .Net MVC 응용 프로그램에서 HTTPContext 세션 상태를 사용하여 양식을 이동해야하는 이유는 무엇입니까?
누군가가 최근 추세의 추론을 설명 할 수 있습니까? 거기에는 기술적 인 이유로 확실한 이유가 있습니까?
덕분에, 존은 말하기
먼저 MVC는 웹 폼이 아니며 stateless입니다.
http://www.wintellect.com/blogs/jprosise/thoughts-on-asp-net-s-new-mvc-framework
둘째, MVC 자연 http://dotnetslackers.com/articles/aspnet/AnArchitecturalViewOfTheASPNETMVCFramework.aspx 에서 편안하고 스택 오버 플로우에 따른 것입니다 (웃음) 세션이 편안하지 않습니다.
Do sessions really violate RESTfulness?
세 번째 세션은 오래된 학교입니다. 귀하는 귀하의 일부 업무로 귀하의 응용 프로그램을 업그레이드하고, 데이터 안전성과 응답 성을 향상시킬 수 있습니다. "응용 프로그램에 대한 각 HTTP 요청은 응용 프로그램이 out-of-proc 저장소에 2 개의 추가 네트워크 요청을해야한다는 것을 의미합니다. 하나는 요청이 처리되기 전에 세션을로드하고 다른 하나는 요청 처리가 완료된 후 세션을 다시 저장하는 것입니다. http://brockallen.com/2012/04/07/think-twice-about-using-session-state/
유용한 정보로 빠른 피드백을 주셔서 감사합니다. – JohnB
이유는 "세션 스와핑"입니다. 기본적으로 사용자는 다른 사용자의 세션을 끝낼 수 있습니다. 이 결과는 눈에 띄지 않을 수도 있고 사용자가 기밀 정보를 볼 수도 있습니다.
MSDN에서이 기술에 대한 정확한 참조는 없지만 이전에는 "야생에서"발생했습니다. 빠른 Google 검색은 많은 결과를 가져옵니다. 한 예가 있습니다 : http://forums.asp.net/t/1519279.aspx
그러나 세션은 어떻게 구현되는지에 따라 다릅니다. 결국 세션은 캐싱 버전 일 뿐이므로 최상의 방법은이 캐시가 시스템 메모리 ("InProc"의 기본 버전)에서 발생하지 않도록 지시합니다. 모범 사례를 따르려면 데이터베이스가 지원하는 세션을 유지 관리하기 위해 특별히 서버를 설치하는 것이 좋습니다.
결국 세션의 기능이 아니지만 "InProc"설정이 권장됩니다.
최근 추세가 아닙니다. 세션을 사용하면 사용자의 쿠키에 넣지 않을 것입니다. 항상 냄새가났습니다. 아래 트래비스 J의 대답을 참조하십시오. 또한로드 균형 조정과 같은 방법으로 세션 사용을 줄일 수 있습니다. – Maess
가능한 복제본 [ASP.NET MVC에서 세션 상태를 사용하지 않는 것이 좋습니다. 그렇다면 왜, 어떻게?] (http://stackoverflow.com/questions/5220980/is-it-a-good-practice-to-avoid-using-session-state-in-asp-net-mvc-if -yes-why-a) – Win