Mit der Out-of-the-Box-MVC-App, die mit der neuesten (VS2) VS2015 ASP.NET Core-Vorlage erstellt wurde, wird die Datei _LoginPartial.cshtml als Teil der freigegebenen _Layout.cshtml-Datei gerendert. _LoginPartial hat folgenden Inhalt:ASP.NET Core MVC-Projekt scheint AntiForgenery Token automatisch hinzuzufügen?
@using Microsoft.AspNetCore.Identity
@using CodeServer.Models
@inject SignInManager<ApplicationUser> SignInManager
@inject UserManager<ApplicationUser> UserManager
@if (SignInManager.IsSignedIn(User))
{
<form asp-controller="Account" asp-action="LogOff" method="post" id="logoutForm" class="navbar-right">
<ul class="nav navbar-nav navbar-right">
<li>
<a asp-controller="Manage" asp-action="Index" title="Manage">Hello @UserManager.GetUserName(User)!</a>
</li>
<li>
<button type="submit" class="btn btn-link navbar-btn navbar-link">Log off</button>
</li>
</ul>
</form>
}
else
{
<ul class="nav navbar-nav navbar-right">
<li><a asp-controller="Account" asp-action="Login">Log in</a></li>
</ul>
}
Wenn diese in die Seite gerendert wird, ist dies das Ergebnis (aus Sicht Quelle):
<form method="post" id="logoutForm" class="navbar-right" action="/Account/LogOff">
<ul class="nav navbar-nav navbar-right">
<li>
<a title="Manage" href="/Manage">Hello [email protected]!</a>
</li>
<li>
<button type="submit" class="btn btn-link navbar-btn navbar-link">Log off</button>
</li>
</ul>
<input name="__RequestVerificationToken" type="hidden" value="..." /></form>
Nicht zu ASP.NET ungnädig zu sein, aber wie ist dieser Token kommt da rein? Ich habe außerdem eine find-in-files für die gesamte Lösung auf AntiForgener gemacht, und die einzigen Treffer sind entweder [ValidateAntiForgeryToken]
Tags oder Einträge in project.lock.json.
Ich wollte überprüfen, dass meine validate-Tags funktionierten, indem Sie absichtlich das Token in der Anfrage auslassen, aber ich kann das nicht tun, wenn das Token hilfreich (?) Für mich hinzugefügt wurde.