1. 程式人生 > 實用技巧 >Identity使用者管理入門六(後續補充)

Identity使用者管理入門六(後續補充)

目前使用者管理的增刪改查及登入功能已經全部實現,但存在一個問題,登入後要取消登入按鈕顯示退出按鈕,未登入應該有註冊按鈕,現實現過程如下

一、Startup.cs中增加服務

app.UseAuthentication();

二、修改使用者管理主頁

注入服務

@inject SignInManager<IdentityUser> SignInManager

修改檢視程式碼,判斷當前使用者是否登入

@if (SignInManager.IsSignedIn(User)) { <form asp-action="Logout" method="post" id="logoutForm

"> <a href="javascript:document.getElementById('logoutForm').submit()">退出</a> </form> } else { <a asp-action="Register">註冊</a> <a asp-action="Login">登入</a> }

登入及未登入顯示效果

修改後完整程式碼

@using Microsoft.AspNetCore.Identity
@model IEnumerable<Microsoft.AspNetCore.Identity.IdentityUser>
@inject SignInManager
<IdentityUser> SignInManager @{ ViewData["Title"] = "Index"; } <h1>Index</h1> <h1>@ViewData["User"]</h1> @if (SignInManager.IsSignedIn(User)) { <form asp-action="Logout" method="post" id="logoutForm"> <a href="javascript:document.getElementById('logoutForm').submit()
">退出</a> </form> } else { <a asp-action="Register">註冊</a> <a asp-action="Login">登入</a> } <table class="table table-bordered"> <tr> <th>@Html.DisplayNameFor(u => u.Id)</th> <th>@Html.DisplayNameFor(u => u.UserName)</th> <th>@Html.DisplayNameFor(u => u.Email)</th> <th>@Html.DisplayNameFor(u => u.PhoneNumber)</th> <th>操作</th> </tr> @foreach (var item in Model) { <tr> <td>@item.Id</td> <td>@item.UserName</td> <td>@item.Email</td> <td>@item.PhoneNumber</td> <td> <a asp-action="EditUser" asp-route-id="@item.Id" type="button" class="btn btn-success btn-xs">修改</a> <a asp-action="Delete" asp-route-id="@item.Id" type="button" class="btn btn-danger btn-xs" size="">刪除</a> </td> </tr> } </table>
View Code