Sto sviluppando un asp.net mvc 5 applicazione in cui stavo cercando di reindirizzare al ReturnUrl applicando il codice qui sotto:Server Impossibile aggiungere intestazione dopo intestazioni HTTP sono stati inviati Eccezione a @ Html.AntiForgery
[HttpPost]
[AllowAnonymous]
public ActionResult Login(UserLogin model, string returnUrl)
{
if (ModelState.IsValid)
{
string EncryptedPassword = GetMD5(model.Password);
if (DataAccess.DAL.UserIsValid(model.Username, EncryptedPassword))
{
FormsAuthentication.SetAuthCookie(model.Username, true);
if (String.IsNullOrEmpty(returnUrl))
{
return RedirectToAction("Index", "Home");
}
else
{
Response.Redirect(returnUrl);
}
}
else
{
ModelState.AddModelError("", "Invalid Username or Password");
}
}
return View();
}
Il codice sopra funziona perfettamente, ma il problema è che quando invio il modulo di accesso, mi dà un'eccezione che non ho mai affrontato prima e ho difficoltà a risolvere l'eccezione che sta generando nella vista in Login.cshtml, Alla riga:
@Html.AntiForgeryToken()
E l'Excepti su quello che getta:
Ho studiato molto ma non riesco a raggiungere la conclusione. La mia applicazione funziona correttamente quando rimuovo la riga @ Html.AntiForgeryToken(), ma non voglio farlo, voglio che la mia applicazione rimanga protetta dalla richiesta cross-site.
Qualcuno può aiutarmi, come posso sbarazzarmi di questa eccezione?
Mostra il codice di vista in cui si utilizza la linea @ Html.AntiForgeryToken() – ojf
Il tuo @ Html.AntiForgeryToken() 'nel tuo modulo nella visualizzazione? –
@PedroBenevides Sì, si trova nella forma Begin..Sorry Per la risposta tardiva. –