2016-07-19 10 views
0

@Html.AntiForgeryToken()을 같은 프로젝트에있는 작업으로 사용하면 완벽하게 작동합니다. 그러나 양식의 작업 장소가 동일한 솔루션 내의 다른 프로젝트에있는 경우 다음과 같은 오류가 발생합니다.여러 ASP.NET 하위 프로젝트간에 AntiForgeryToken 사용

위조 토큰을 해독 할 수 없습니다. 이 응용 프로그램이 웹 팜 또는 클러스터에서 호스팅되는 경우 모든 컴퓨터에서 동일한 버전의 ASP.NET 웹 페이지가 실행되고 <machineKey> 구성에서 명시 적 암호화 및 유효성 검사 키가 지정되어 있는지 확인하십시오. AutoGenerate는 클러스터에서 사용할 수 없습니다.

다른 프로젝트간에 AntiForgeryToken을 사용할 수있는 방법이 있습니까?

+0

오류 메시지에서 수행 할 작업을 수행 했습니까? ['web.config'에'machinekey' 항목을 설정하십시오.] (https://msdn.microsoft.com/en-us/library/ff649308.aspx#paght000007_webfarmdeploymentconsiderations)? – spender

+0

기계 키를 어떻게 설정합니까? –

+0

절대로, 당신의 대답에 링크가 있다는 것을 깨닫지 못했습니다. 감사! –

답변

0

위조 방지 토큰의 서명/암호화는 웹 구성의 <machinekey> 섹션에있는 키의 통제를받습니다. 이 값이 설정되어 있지 않으면 값은 각 앱에 대해 자동 생성됩니다. 즉, 각 앱마다 다른 컴퓨터 키가 있으므로 한 앱의 토큰을 다른 앱에서 해독 할 수 없습니다.

다행히도, 자신의 값을 생성하여 각 앱의 웹 구성에 저장할 수 있습니다. 이 프로세스는 물론 여기에 설명되어 있습니다 :

https://msdn.microsoft.com/en-us/library/ff649308.aspx#paght000007_webfarmdeploymentconsiderations

보안이 최대 관심사가 아닌 경우에, 당신은 많은 온라인 machinekey 발전기 중 하나를 고려해 볼 수 있습니다. TLS/SSL/HTTPS로 보안을 찾을 수 없으며이 사이트의 운영자를 알지 못하기 때문에 신뢰가 큰 문제라고 생각합니다.

+0

지금이 오류가 나타납니다 : ** 위조 방지 쿠키 토큰과 양식 필드 토큰이 일치하지 않습니다. ** –

관련 문제