2016-07-15 2 views
0

부하 분산 (2 노드) 웹 팜에서 IIS 8.5를 실행하고 있습니다. here 설명 된대로, 내가 명시 적 검증 및 암호 해독 키를 생성 한 서버 전체 수준에서"위조 방지 토큰을 암호 해독 할 수 없습니다."

  • 및 전역을 동기화 한 :

    System.Web.Mvc.HttpAntiForgeryException (0x80004005): The anti-forgery 
    token could not be decrypted.... 
    

    I 체크/시도 다양한 솔루션 : 우리는 산발적 인 오류를 얻고있다 두 노드. 한 가지주의해야 할 점은 지금은 "각 응용 프로그램마다 고유 한 키 생성"을 선택하지 않은 채로 두었습니다.

  • 토큰은 페이지 당 한 번만 생성되어 here의 문제를 피할 수 있습니다.

하지만 오류는 지속됩니다.

다음 문제를 해결하려면 어떻게해야합니까?


편집 :

컨트롤러 코드 :

[HttpGet] 
public ActionResult Index() 
{ 
    var model = new LoginModel(); 
    return View(model); 
} 

관련 뷰 코드 :

@using (Html.BeginForm()) 
{ 
    @Html.AntiForgeryToken() 
    @Html.ValidationSummary(true) 

    <h1>Log In</h1> 
    <fieldset> 
     <label>Email</label> 
     @Html.TextBoxFor(model => model.Username)       
     <label>Password</label> 
     @Html.PasswordFor(model => model.Password) 
     <input type="submit" /> 
    </fieldset> 
} 
+0

코드를 표시 할 수 있습니까? 특히보기 및 컨트롤러 방법. 또한 두 컴퓨터의 모든 .NET 프레임 워크 (64 비트 및 32 비트)에서 컴퓨터 키를 동기화 했습니까? –

+0

코드를 익명화하는 데 시간이 걸립니다. 컴퓨터 키에 관해서는 컴퓨터 키가 첫 번째 링크에 설명 된대로 IIS GUI를 통해 동기화 된 유효성 검사 키와 암호 해독 키로 구성된다는 것을 이해했습니다. 그것이 잘못된 이해입니까? – anon

+0

나는 그것이 맞다라고 생각한다. .. 그러나 트릭이있다, 여러 개의 machine.configs (서버에 설치되는 각 버전의 .NET 프레임 워크 중의 하나와 각 플랫폼 (64/32 비트))가있다. 하나도 놓치지 않았다면, 그리고 그 요청에 서버가 사용하고있는 것이면, 이런 종류의 문제가 발생할 것입니다. –

답변

0

내가 똑같은 문제가 많은 사람들이 기계의 키를 변경 제안을했다거나 수도 있었다 형태로 한 번 이상 찍힌 위조 방지 문구가 포함 된 경우에 발생합니다. 어떤 이유로 든 내 문제가 발생하지 않았으며, 하나의 단순한 어리석은 이유로 발생했으며 부적절한 div 게재 위치입니다. 외부에서 열리는 MVC 양식 안에서 div를 닫으면이 문제가 발생할 가능성이 높습니다.

관련 문제