Voici la solution que j'ai trouvée pour permettre à un utilisateur de se connecter aux systèmes d'authentification préétablis.
Chacune de mes zones possède une version du fichier _LoginPartial.cshtml.
Je pourrais probablement faire en sorte que l'application utilise une seule version du fichier, mais je n'ai cessé de rencontrer des erreurs lorsque j'ai essayé d'utiliser un seul login partiel.
Il ne s'agit que d'une légère modification du loginpartial généré à l'origine, mais il semble bien fonctionner lorsqu'il est utilisé dans des zones spécifiques.
Voici le code qui est utilisé dans chacun d'entre eux :
@if (Request.IsAuthenticated)
{
<text>
Hello, @Html.ActionLink(User.Identity.Name, "Manage", "Account", new { area = "" }, htmlAttributes: new { @class = "username", title = "Manage" })!
@using (Html.BeginForm("LogOff", "Account", new { area = "" }, FormMethod.Post, new { id = "logoutForm" }))
{
@Html.AntiForgeryToken()
<a href="javascript:document.getElementById('logoutForm').submit()">Log off</a>
}
</text>
}
else
{
<ul>
<li>@Html.ActionLink("Register", "Register", "Account", new { area = "" }, htmlAttributes: new { id = "registerLink" })</li>
<li>@Html.ActionLink("Log in", "Login", "Account", new { area = "" }, htmlAttributes: new { id = "loginLink" })</li>
</ul>
}