Esto es lo que se me ocurrió como una solución para permitir que un usuario se vincule a los sistemas de autenticación preconstruidos.
Cada una de mis áreas tiene una versión del archivo _LoginPartial.cshtml.
Probablemente podría hacer que la aplicación use una única versión del archivo, sin embargo, seguí encontrando errores al intentar usar un solo inicio de sesión parcial.
Es solo una ligera modificación al inicio de sesión original generado, pero parece funcionar bien cuando se usa en áreas específicas.
Aquí está el código que se usa en todos ellos:
@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>
}