1. 程式人生 > >mvc core2.1 Identity.EntityFramework Core 用戶Claims查看(七)

mvc core2.1 Identity.EntityFramework Core 用戶Claims查看(七)

toolbar spa == uri style for 技術分享 auth pac

添加角色屬性查看

Views ->Shared->_Layout.cshtml

技術分享圖片 <div class="navbar-collapse collapse"> <ul class="nav navbar-nav">   <li><a asp-area="" asp-controller="Home" asp-action="Index">Home</a></li>   <li><a asp-area="" asp-controller="Home" asp-action="About">About</a></li>   <li><a asp-area="" asp-controller="Home" asp-action="Contact">Contact</a></li>   <li><a asp-area="" asp-controller="Account" asp-action="Index">Account</a></li>   <li><a asp-area="" asp-controller="Claims" asp-action="Index">Claims</a></li> //加這句 技術分享圖片

Controllers->ClaimsController.cs 新建

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using IdentityMvc.Models;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Authorization;
using IdentityMvc.Models.AccountViewModels; using Microsoft.AspNetCore.Authentication; using System.ComponentModel.DataAnnotations; using Microsoft.EntityFrameworkCore; using System.Security.Claims; namespace IdentityMvc.Controllers { public class ClaimsController : Controller { [Authorize]
public ActionResult Index() { ClaimsIdentity ident = HttpContext.User.Identity as ClaimsIdentity; if (ident == null) { return View("Error", new string[] { "No claims available" }); } else { return View(ident.Claims); } } } }

Views->Claims->Index.cshtml 新建

@using System.Security.Claims
@using IdentityMvc.App_Code
@model IEnumerable<Claim>
@{ ViewBag.Title = "Claims"; }

<div class="panel panel-primary">
    <div class="panel-heading">
        Claims
    </div>
    <table class="table table-striped">
        <tr>
            <th>Subject</th><th>Issuer</th>
            <th>Type</th><th>Value</th>
        </tr>
        @foreach (Claim claim in Model.OrderBy(x => x.Type)) {
            <tr>
                <td>@claim.Subject.Name</td>
                <td>@claim.Issuer</td>
                <td>
                    @{
                       IdentityHelpers dd= new IdentityHelpers();
                      @Html.Raw( dd.ClaimType(@claim.Type));
                    }  
                   </td>
                <td>@claim.Value</td>
            </tr>
        }
    </table>
</div>

App_Code->IdentityHelpers.cs 新建

using System;
using System.Linq;
using System.Reflection;
using System.Security.Claims;

namespace IdentityMvc.App_Code
 {

     public  class IdentityHelpers {

        public  string  ClaimType( string claimType) {
    
            return string.Format("{0}", claimType.Split(/, .).Last());
        }
        
    }
}

mvc core2.1 Identity.EntityFramework Core 用戶Claims查看(七)