0
@using Microsoft.AspNetCore.Identity
@using Lifejoice.Web.Data
@inject SignInManager<ApplicationUser> SignInManager
@inject UserManager<ApplicationUser> UserManager
@if (SignInManager.IsSignedIn(User))
{
<form asp-controller="Account" asp-action="Logout" method="post" id="logoutForm" class="navbar-right">
<ul class="navbar-nav navbar-right2">
<li class="nav-item">
<a class="nav-link" asp-page="/Account/Manage/Index" title="Manage">Hello @UserManager.GetUserName(User)!</a>
</li>
<li class="nav-item">
<button type="submit" class="btn btn-link navbar-btn nav-link">Log out</button>
</li>
</ul>
</form>
}
else
{
<ul class="navbar-nav navbar-righwt">
<li class="nav-item"><a class="nav-link" asp-page="/Account/Register">Register</a></li>
<li class="nav-item"><a class="nav-link" asp-page="/Account/Login">Log in</a></li>
</ul>
}
は、ここでログアウト機能は、フォーム内のボタンにバインドされています。フォーム内のボタンの代わりにlink()として機能するLogout() - 関数を取得することは可能ですか?
これがリンクではない理由は、 'Logout'アクションに対するクロスドメインGET要求を防ぐことです。フォーム投稿はクロスドメインには送信できません。ユーザーがクロスドメインログアウトのリスクにさらされることなくGETリクエストで動作するリンクを提供する場合は、公開する各ログアウトリンクのクエリ文字列にワンタイムトークンを実装することをお勧めします。痛みのビット。 – spender
ありがとうございます。だから私はリンクのようにボタンをスタイルするか? – Opa114
はい。ボタンは、アンカーリンクと同じように視覚的に動作するようにスタイリングすることができます。 – spender