Basit bir ASP.NET MVC 3 örneği ile varsayılan LogOn formunu değiştirerek hızlı bir test yaptım. this article'a göre, hem gizli alan __RequestVerificationToken
hem de __RequestVerificationToken_Lw__
çerezleri Html.AntiForgeryToken()
tarafından oluşturulan aynı değeri içermelidir. Ancak, Fiddle'a aldığımda tam olarak aynı değil, MVC 3 kaynak koduna bakarak, GetAntiForgeryTokenAndSetCookie
yöntemi çerezleri oluşturmak için tuz değeri kullanmadı. MVC 3'te herhangi bir değişiklik oldu mu?AntiForgeryToken'in gizli alanı neden makinedeki tanımlama bilgileriyle aynı değil?
Hala normal veya Ajax POST isteğiyle başarılı bir şekilde oturum açabileceğimi unuttum. İşte
Fiddle gelen ham günlük geçerli:
POST http://localhost:51713/Account/LogOn HTTP/1.1
Referer: http://localhost:51713/Account/LogOn
Content-Length: 256
Origin: http://localhost:51713
X-Requested-With: XMLHttpRequest
Content-Type: application/x-www-form-urlencoded
Cookie: __RequestVerificationToken_Lw__=OIRtVqUvNt/LfDGeoVy3W1VhdKN7MwdbUZmRNScz4NqS4uV0I0vQH2MHg77SsVhcinK5SJi9mVcdBUWk2VMiPTk8EMUN2Zq0X4ucK8XQ3/zr6NoiIvVF73Bq8ahbFaY/IrNrWY7mmzvO9j/XVLNN2lNqgCd6I3UGZAw3/nlOmpA=
__RequestVerificationToken=zeDS%2F8MZE%2BLf%2FrRhevwN51J7bOE3GxlGNLQc8HogwFctF7glU1JboHePTTHa5YFe9%2FD2sY7w167q53gqvcwYZG1iZeecdnO4fdg6URdR4RUR%2BjIgk1apkXoxQ2xg48REfv4N5D4SHKU4MAf30Diy0MVyyF9N2Dl7uUGT6LbKHZU%3D&UserName=Tien&Password=tien&RememberMe=false
Yankı olarak - AntiForgery jetonları, uygulamanızın halka açık olmayan kısımlarında kullanılmak üzere tasarlanmıştır (kullanıcının önceden kimliği doğrulanmışsa). Onları halka açık bir giriş formunda kullanmak oldukça anlamsız. –
LogOn formu test amaçlı kullanıldı. –