안타깝게도 Azure는 자체적으로 응용 프로그램 machineKey를 재정의하므로이 솔루션은 Azure 이외의 ASP.NET 사이트 ( "다른 VM의로드 밸런서 뒤에있는 모든 Windows Azure 인스턴스)에서만 작동합니다.그리고 각각은 동일한 machineKey (VewState 및 세션 상태 암호화에 사용됨)를 작동해야합니다.Azure 에뮬레이터가 앱을 실행할 때 Web.config를 변경하려고하는 이유가 그 때문입니다."-포럼
모든 ASP.NET 사이트를 위한 해결점
Azure에서 작동하는 솔루션__RequestionVerificationToken은 로그인 페이지를 로드 할 때사용자의쿠키를 업데이트해야합니다.로그인 및 가입 페이지에 대해 AccountController GET 메소드에서 다음 코드를 사용하십시오.
private void SetANewRequestVerificationTokenManuallyInCookieAndOnTheForm()
{
if (Response == null)
return;
string cookieToken, formToken;
AntiForgery.GetTokens(null, out cookieToken, out formToken);
SetCookie("__RequestVerificationToken", cookieToken);
ViewBag.FormToken = formToken;
}
private void SetCookie(string name, string value)
{
if (Response.Cookies.AllKeys.Contains(name))
Response.Cookies[name].Value = value;
else
Response.Cookies.Add(new HttpCookie(name, value));
}
그런 다음 View 에서 토큰 쌍이 일치하도록 Controller 에서 생성 한 form Token 을 추가하십시오.