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());
        }

    }
}

原文地址:https://www.cnblogs.com/LiuFengH/p/9556322.html

时间: 2024-10-11 01:19:35

mvc core2.1 Identity.EntityFramework Core 用户Claims查看(七)的相关文章

mvc core2.1 IdentityServer.EntityFramework Core 配置

dotnet new mvc -o  IdentityMvc cd IdentityMvc dotnet add package Microsoft.AspNetCore.Identity.EntityFrameworkCore Startup.cs->ConfigureServices using IdentityMvc.Data;using Microsoft.EntityFrameworkCore;using IdentityMvc.Models;using Microsoft.AspNe

Asp.Net MVC 5使用Identity之简单的注册和登陆

由于.Net MVC 5登陆和注册方式有很多种,但是Identity方式去实现或许会更简单更容易理解 首先新建一个项目 其次如下选择Empty和MVC的选项 然后打开NuGet包管理器分别安装几个包 EntityFramework Microsoft.AspNet.Identity.Core Microsoft.AspNet.Identity.EntityFramework Microsoft.AspNet.Identity.Owin Modernizr Microsoft.Owin.Host.

Asp.net Identity 系列之 怎样修改Microsoft.AspNet.Identity.EntityFramework.IdentityUser 的 Id 字段的数据类型

这篇博客我们来学习如何将AspNetUsers 表的Id 字段 的类型由nvarchar(128) 改为Int 并且子增长 1.为什么要修改 如果你运行过 Asp.net mvc 示例项目,你好会发现 AspNetUsers 表的Id是Nvarchar(128) 类型,值为GUID,不可否认使用GUID来做主键进行主外键关联会增加数据安全性(个人看法),但是非常不利于查询,可读性不够,因此我们尝试着去改为Int类型. 先看一下修改后的效果: 2.修改前分析 查看数据库结构我们知道要修改的表有这样

ABP 教程文档 1-1 手把手引进门之 AngularJs, ASP.NET MVC, Web API 和 EntityFramework(官方教程翻译版 版本3.2.5)含学习资料

本文是ABP官方文档翻译版,翻译基于 3.2.5 版本 转载请注明出处:http://www.cnblogs.com/yabu007/  谢谢 官方文档分四部分 一. 教程文档 二.ABP 框架 三.zero 模块 四.其他(中文翻译资源) 本篇是第一部分的第一篇. 第一部分分三篇 1-1 手把手引进门 1-2 进阶 1-3 杂项 (相关理论知识) 第一篇含两个步骤. 1-1-1 ASP.NET Core & Entity Framework Core 后端(内核)含两篇 ( 第一篇链接    

第15章 使用EntityFramework Core进行配置和操作数据 I

IdentityServer旨在实现可扩展性,其中一个可扩展点是用于IdentityServer所需数据的存储机制.本快速入门展示了如何配置IdentityServer以使用EntityFramework Core(EF)作为此数据的存储机制(而不是使用我们迄今为止使用的内存中实现). 注意 除了手动配置EF支持外,还有一个IdentityServer模板可用于创建具有EF支持的新项目.使用创建它.有关更多信息,请参见此处dotnet new is4ef 15.1 IdentityServer4

从零开始学 ASP.NET Core 与 EntityFramework Core 目录

从零开始学 ASP.NET Core 与 EntityFramework Core 介绍 我是一个目录,它旨在帮助开发者循序渐进的了解 ASP.NET Core 和 Entity Framework Core . 文章会随着版本进行更新,关注我获取最新版本 目标 我们将详细讨论和学习: .NET 平台 ASP.NET Core ASP.NET Core MVC ASP.NET Identity Core Entity Framework Core 适用对象 学习本书的前置条件只需要你有一点 C#

EntityFramework Core 1.1 Add、Attach、Update、Remove方法如何高效使用详解

EntityFramework Core 1.1方法理论详解 当我们利用EF Core查询数据库时如果我们不显式关闭变更追踪的话,此时实体是被追踪的,关于变更追踪我们下节再叙.就像我们之前在EF 6.x中讨论的那样,不建议手动关闭变更追踪,对于有些特殊情况下,关闭变更追踪可能会导致许多问题的发生. 实体状态 对于EF Core 1.1中依然有四种状态,有的人说不是有五种状态么,UnChanged.Added.Modified.Deleted.Detached.如果我们按照变更追踪来划分的话,实际

[ASP.NET MVC] ASP.NET Identity登入技术剖析

[ASP.NET MVC] ASP.NET Identity登入技术剖析 前言 ASP.NET Identity是微软所贡献的开源项目,用来提供ASP.NET的验证.授权等等机制.本篇文章介绍ASP.NET Identity在执行登入功能时,与浏览器.还有第三方验证服务之间的运作流程.主要为自己留个纪录,也希望能帮助到有需要的开发人员.(本篇内容大幅度简化了ASP.NET Identity的运作细节,用以传达登入功能的运作概念.实际ASP.NET Identity在运作的时候,比本篇说明的复杂很

EntityFramework 7 更名为EntityFramework Core(预发布状态)

前言 最近很少去学习和探索新的东西,尤其是之前一直比较关注的EF领域,本身不太懒,但是苦于环境比较影响自身的心情,所以迟迟没有下笔,但是不去学习感觉在精神层面缺少点什么,同时也有园友说EF又更新了,要我再写一篇,最终经过思想斗争后,还是花了一点时间去继续探索.本篇比较理论的去分享最近EF进展,后面有时间会继续关注EF团队在EF上的动向,并给出相对应的实例. EF Core 1.0.0 (1)EntityFramework是微软在.NET中推荐使用的数据访问技术,而EntityFramework