一.登录分析 在使用identity身份验证登录时,在login中调用的方法是: var result = await _signInManager.PasswordSignInAsync(Input.Email, Input.Password, Input.RememberMe, lockoutOnFailure: true); 跟踪查看源码,源码下载https://github.com/aspnet/AspNetCore/releases 这里有core源码的不同版本,在vs 2017下只能…
一. Identity 介绍 ASP.NET Core Identity是一个会员系统,可为ASP.NET Core应用程序添加登录功能.可以使用SQL Server数据库配置身份以存储用户名,密码和配置文件数据.或者,可以使用另一个持久性存储,例如,Azure表存储.下面学习如何使用Identity注册,登录以及基架标识. 1.1 Identity搭建演示 下面使用vs 2017来演示: 1.选择“文件” > “新建” > “项目”. 2.选择“ASP.NET Core Web应用程序”. …
一.概述 授权是指用户能够访问资源的权限,如页面数据的查看.编辑.新增.删除.导出.下载等权限.ASP.NET Core 授权提供了多种且灵活的方式,包括:Razor pages授权约定.简单授权.Role角色授权.Claim声明授权.Policy策略授权.资源授权.视图授权. 1.1 Razor pages约定授权 Razor pages约定授权用于Razor page应用程序,以及MVC中的Identity  Razor Pages库,不适应于MVC中的控制器和视图.如下图适用MVC中Ide…
一.概述 ASP.NET Core Identity提供了一个框架,用于管理和存储在 ASP.NET Core 应用中的用户帐户. Identity添加到项目时单个用户帐户选择作为身份验证机制. 默认情况下,Identity可以使用的 Entity Framework (EF) Core 数据模型. 本文介绍如何自定义的身份标识模型. 1.1 下面是已经存在的身份模型, 由以下实体类型组成: 实体类型 说明 关系 Users(用户表) 登录用户   Roles (角色表) 角色 UserClai…
一.概述 接着上篇的WebAppIdentityDemo项目,将自定义用户数据添加到Identity DB,自定义扩展的用户数据类应继承IdentityUser类, 文件名为Areas / Identity / Data / {项目名称}User.cs.自定义的用户数据模型属性需要使用[PersonalData]来修饰,以便自动下载和删除.使数据能够下载和删除有助于满足GDPR要求. 1.1 自定义用户数据类 WebAppIdentityDemo.Areas.Identity.Data. pub…
1.6 基于资源的授权 前面二篇中,熟悉了五种授权方式(对于上篇讲的策略授权,还有IAuthorizationPolicyProvider的自定义授权策略提供程序没有讲,后面再补充).本篇讲的授权方式不是一种全新的授权方式,而是授权应用场景的灵活控制. 基于资源的授权是控制在 razor pages处理程序或mvc的action之中.资源:比如作者发表的文章,只有该作者才能更新文章,文章在进行授权评估之前,必须从数据存储中检索文章. (1) 引用 IAuthorizationService 授权…
1.5 基于策略的授权 在上篇中,已经讲到了授权访问(authorization)的四种方式.其中Razor Pages授权约定和简单授权二种方式更像是身份认证(authentication) ,因为只要是合法用户登录就能访问资源. 而角色授权和声明授权二种方式是真正的授权访问(authorization). 下面继续讲authorization的第五种方式--策略授权.策略授权由一个或多个需求(也可以称"要求")组成(需求:TRequirement).它在程序启动时注册为授权服务配置…
随笔分类 - asp.net core系列篇 asp.net core系列 68 Filter管道过滤器 摘要: 一.概述 本篇详细了解一下asp.net core filters,filter叫"筛选器"也叫"过滤器",是请求处理管道中的特定阶段之前或之后运行代码.filter用于处理横切关注点. 横切关注点的示例包括:错误处理.缓存.配置.授权和日志记录. filter可以避免重复代码,通过Attribut阅读全文 posted @ 2019-07-16 09:…
0. 前言 在之前的文章中简单介绍了一下asp.net core中的Identity,这篇文章将继续针对Identity进行进一步的展开. 1. 给Identity添加额外的信息 在<[asp.net core 系列]13 Identity 身份验证入门>一文中,我们大概了解了如何使用Identity,以及如何保存一些信息以便后续的验证.这里我们将深入讨论一下如何给Identity添加更多的信息. 我们知道在给Identity添加数据的时候,需要添加一个Claim对象.我们先回顾一下Claim…
一.管理数据库架构概述 EF Core 提供两种主要方法来保持 EF Core 模型和数据库架构同步.一是以 EF Core 模型为基准,二是以数据库为基准. (1)如果希望以 EF Core 模型为准,请使用迁移. 对 EF Core 模型进行更改时,此方法会以增量方式将相应架构更改应用到数据库,以使数据库保持与 EF Core 模型兼容.  (2)如果希望以数据库架构为准,请使用反向工程. 使用此方法,可通过将数据库架构反向工程到 EF Core 模型来生成相应的 DbContext 和实体…