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


    添加角色属性查看

    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());
            }
            
        }
    }
  • 相关阅读:
    Java实现邮箱找回密码
    使用Java程序发送Email
    SSH返回Json格式的数据
    destoon二次开发基础指南
    揭秘:中国企业家十大顶级圈子
    Windows环境下完全手工配置Apache、MySQL和PHP
    windowns 查看端口占用
    MySQL主从同步机制及同步中的问题处理
    Apache Rewrite 规则详解
    PHP输出当前进程所有变量 / 常量 / 模块 / 函数 / 类
  • 原文地址:https://www.cnblogs.com/LiuFengH/p/9556322.html
Copyright © 2020-2023  润新知