MVC 5의 ValidateAntiForgeryTokenAttribute를 사용하여 위조 방지 기능을 구현했습니다. 정상적으로 작동하지만 앞으로는 더 많은 "웹 팜"방식의 호스팅으로 이동할 수 있습니다. 개발시 응용 프로그램을 실행하고 양식으로 이동 한 다음 Visual Studio에서 응용 프로그램을 다시 시작하여 웹 서버를 다시 시작한 다음 양식을 제출하면 System.Web.Mvc.HttpAntiForgeryException이 발생하지 않습니다.웹 서버를 다시 시작할 때 MVC 위조 토큰은 어떻게 생존합니까?
우리 응용 프로그램은 다른 세션 상태를 사용하지 않습니다. 누군가 내 서버가 어떻게 중단했는지 이해할 수 있습니까? 내 web.config 또는 다른 곳에서는 machineKey를 정의하지 않습니다. 개발 환경에서 실행하는 것과 관련이 있습니까?
내가 찾을 수있는 유일한 참조는 이전 버전의 MVC 용이므로 지금 다른 방식으로이 문제가 해결되는지 궁금합니다.
이 기능이 작동하기 때문에 기쁩니다. 그러나 이유를 이해해야합니다.
고마워요. 나는 두 값을 비교한다는 것을 알고 있지만 IIS를 다시 시작할 때 값을 해독하는 데 사용 된 암호화 키가 다시 생성 된 것으로 생각됩니다. 키가 새롭기 때문에 값을 해독 할 수 없어야합니다. – DustinA
아, 네가 무엇을 요구하는지 알 겠어. 좋은 질문입니다. 내 대답을 업데이트 할게. –
답변을 작성하는 데 시간을 내 주셔서 감사하지만 정확한지 확신 할 수 없습니다. 이 Microsoft 웹 사이트는 "anti-XSRF 토큰의 페이로드는 암호화되고 서명되었습니다"라고 말합니다. 다음은 페이지의 URL입니다. http://www.asp.net/mvc/overview/security/xsrfcsrf-prevention-in-aspnet-mvc-and-web-pages. 내 경우에는 무슨 일이 벌어지고있는 것 같아요. MachineKey는 암호화 및 해독에 사용되어 실제로 익숙한 것처럼 웹 사이트 또는 앱 풀을 다시 시작하는 사이에 변경되지 않습니다. 나는 아직 그것을 뒷받침 할 수있는 문서를 찾을 수 없지만 그것이 내가 생각하는 것입니다. – DustinA