Ось що я придумав як рішення, щоб дозволити користувачеві здійснювати посилання на попередньо вбудовані системи аутентифікації.
Кожен з моїх областей має версію файлу _LoginPartial.cshtml.
Можливо, я можу змусити програму використовувати одну версію файлу, однак я намагався використовувати помилки при спробі використання єдиного часткового входу.
Це лише незначна зміна оригінального генерованого часткового входу, але він, здається, працює добре, коли використовується в певних областях.
Ось код, який використовується у всіх них:
@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>
}