Oto, co wymyśliłem jako rozwiązanie umożliwiające użytkownikowi łączenie się z gotowymi systemami uwierzytelniania.
Każdy z moich obszarów ma wersję pliku _LoginPartial.cshtml.
Prawdopodobnie mógłbym sprawić, by aplikacja używała jednej wersji pliku, jednak ciągle napotykałem błędy podczas próby użycia częściowego logowania z pojedynczym logowaniem.
Jest to tylko niewielka modyfikacja pierwotnie wygenerowanego loginu, ale wydaje się działać dobrze, gdy jest używany w określonych obszarach.
Oto kod, który jest używany we wszystkich z nich:
@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>
}