ASP.NET Core

【asp.net core 系列】15 自定义Identity

ε祈祈猫儿з 提交于 2020-10-07 04:31:57
0. 前言 在之前的文章中简单介绍了一下asp.net core中的Identity,这篇文章将继续针对Identity进行进一步的展开。 1. 给Identity添加额外的信息 在《【asp.net core 系列】13 Identity 身份验证入门》一文中,我们大概了解了如何使用Identity,以及如何保存一些信息以便后续的验证。这里我们将深入讨论一下如何给Identity添加更多的信息。 我们知道在给Identity添加数据的时候,需要添加一个Claim对象。我们先回顾一下Claim的信息,Claim的属性大多只提供了公开的get访问器,所以这个类的重点在于构造方法: public class Claim { // 基础的 public Claim(string type, string value); public Claim(string type, string value, string valueType); public Claim(string type, string value, string valueType, string issuer); public Claim(string type, string value, string valueType, string issuer, string originalIssuer); //

Asp.Net Core Identity中基于角色授权

时光怂恿深爱的人放手 提交于 2020-10-06 03:10:59
  我们已经在之前介绍了简单的授权是在Controller或Action上添加属性Authorize来实现,那角色授权是在指定Authorize的同时指定Roles参数。   我们来看看基于角色访问的三种方式:   1、指定只有角色为Admin的用户才能访问  [Authorize(Roles = " Admin " ) ]   2、指定角色为Admin或User的用户才能问问 [Authorize(Roles = " Admin,User " ) ]   3、同时拥有Admin角色和User角色才能访问 [Authorize(Roles = " Admin " ) ] [Authorize(Roles = " User " ) ] 来源: oschina 链接: https://my.oschina.net/u/4257773/blog/4327512

asp.net core web api + Element-UI的Vue管理后台

蓝咒 提交于 2020-10-05 14:43:27
后端:asp.net core web api + EF Core 前端:VUE + Element-UI+ Node环境的后台管理系统 数据库:SQL Server2017 服务器:阿里云服务器 线上地址: http://www.wangjk.wang 账号:admin 密码:123 API文档地址: http://www.wangjk.wang:8090/swagger/ui/index.html 说明:有好多功能都没完善,可能还会有存在的错误,也没有测试过,先放上去看看吧。 来源: oschina 链接: https://my.oschina.net/u/4404541/blog/4333457

跟我一起学.NetCore之依赖注入

偶尔善良 提交于 2020-10-04 04:33:34
前言 现阶段而言,依赖注入相关组件如果不会用一两个,感觉在Code的世界里肯定是落伍了,最起码得有工厂模式的思想,知道这样做的好处;提及到依赖注入,通常会关联出两个概念:Ioc(控制反转)和DI(依赖注入) 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。 百度百科 个人理解: IoC(控制反转): 就是将原先的new对象这个操作交由第三方容器,由容器统一创建对象并管理其创建对象的生命周期; DI(依赖注入): 我理解其中“依赖”有两层意思: 类与类之间的依赖关系; 对象的创建依赖于容器; "注入":不用主动从容器中获取对象,由容器根据对象依赖关系自动注入; 依赖注入:程序将对象控制权交给容器,统一依赖容器创建对象,类之间的依赖,也是通过容器自动注入; 注:注入的前提是要把对象的控制权交给容器; 依赖注入优点: 轻松管理类及类之间的依赖; 减少代码耦合性; 提高代码维护性和可扩展性; 由容器统一创建对象和管理生命周期; 好了,先不详细深究了,这里先说说

【asp.net core 系列】4. 更高更强的路由

你离开我真会死。 提交于 2020-10-04 03:25:07
0. 前言 在之前我们介绍了请求通过路由寻找到控制器,以及控制器与视图的数据流转。那么,我们回过头来,再看看路由的一些其他用法。 1. 路由属性(Route Attribute) 按照英文的直接翻译,Routing Attribute 的意思是路由属性,但实际上 Attribute在微软的官方称呼是特性。嗯,所以个人觉得Route Attribute应该是特性路由,路由特性。 嗯,暂且甩开称呼的问题,小伙伴们知道这是一种使用Attribute标记的路由配置方案就行。我们之前了解的路由设置都是通过路由表设置的,而Route Attribute则是另外一种方案。 1.1 如何设置 这种方案主要是通过RouteAttribute类来设置的,我们先来看一下这个类是个什么样的吧: [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true, Inherited = true)] public class RouteAttribute : Attribute, IRouteTemplateProvider { public RouteAttribute(string template); public string Name { get; set; } public int

VS开发跨平台首选工具DevExtreme正式发布v20.1.4

我们两清 提交于 2020-10-03 03:17:00
DevExtreme 拥有高性能的HTML5 / JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NET Core,jQuery,Knockout等)构建交互式的Web应用程序。从Angular和Reac,到ASP.NET Core或Vue,DevExtreme包含全面的高性能和响应式UI小部件集合,可在传统Web和下一代移动应用程序中使用。 该套件附带功能齐全的数据网格、交互式图表小部件、数据编辑器等。 DevExtreme v20.1.4完整版下载 具体更新内容如下: 此列表包括v20.1.4中已解决的所有问题。 All Angular products T892546 - Angular Web Report Designer - CustomizeSaveAsDialog事件丢失 DevExtreme Core T886254 - 在v20.1中出现的"DevExpress.data.ODataContext is not a constructor"错误 DevExtreme Data Grid T879946 - DataGrid - 如果定义了calculateDisplayValue,则查找列不会以“单元格”编辑模式显示新行的值 T866890 - DataGrid - 在某些情况下启用远程虚拟滚动功能时

如何在 asp.net core 的中间件中返回具体的页面

自古美人都是妖i 提交于 2020-10-03 03:04:56
前言 在 asp.net core 中,存在着中间件这一概念,在中间件中,我们可以比过滤器更早的介入到 http 请求管道,从而实现对每一次的 http 请求、响应做切面处理,从而实现一些特殊的功能 在使用中间件时,我们经常实现的是鉴权、请求日志记录、全局异常处理等等这种非业务性的需求,而如果你有在 asp.net core 中使用过 swashbuckle(swagger)、health check、mini profiler 等等这样的组件的话,你会发现,这些第三方的组件往往都提供了页面,允许我们通过可视化的方式完成某些操作或浏览某些数据 因为自己也需要实现类似的功能,虽然使用到的知识点很少、也很简单,但是在网上搜了搜也没有专门介绍这块的文档或文章,所以本篇文章就来说明如何在中间件中返回页面,如果你有类似的需求,希望可以对你有所帮助 Step by Step 最终实现的功能其实很简单,当用户跳转到某个指定的地址后,自定义的中间件通过匹配到该路径,从而返回指定的页面,所以这里主要会涉及到中间件是如何创建,以及如何处理页面中的静态文件引用 因为这块并不会包含很多的代码,所以这里主要是通过分析 Swashbuckle.AspNetCore 的代码,了解它是如何实现的这一功能,从而给我们的功能实现提供一个思路 在 asp.net core 中使用 Swashbuckle

IdentityServer4 4.x版本 配置Scope的正确姿势

旧时模样 提交于 2020-10-02 21:59:23
前言 IdentityServer4 是为ASP.NET Core系列量身打造的一款基于 OpenID Connect 和 OAuth 2.0 认证的框架 IdentityServer4官方文档: https://identityserver4.readthedocs.io/ 看这篇文章前默认你对IdentityServer4 已经有一些了解。 本篇使用IdentityServer4的4.x版本,跟老版本的稍微有些差别。下面直接进入正题。 鉴权中心 创建IdentityServer4项目 使用IdentityServer4 来搭建一个鉴权中心,首先建议安装一下IdentityServer4的官方项目模板。也可以不安装,自己创建项目,然后NuGet安装需要的包也行。(不过还是推荐用官方的模板,很方便)。 命令行执行: dotnet new -i IdentityServer4.Templates 安装完成后会多出以下项目模板: 我这里选用is4inmem这个模板来创建项目,这个模板的数据都是写死在内存中的,并且包含了Quickstart页面,比较简单方便。 来到我的项目目录下执行: dotnet new is4inmem --name Idp 执行完成会生成以下文件: VS2019打开项目: 运行项目: 配置ApiResource、ApiScope、Clients 修改Startup

.NET 5.0 RC1 发布,离正式版发布仅剩两个版本,与 netty 相比更具竞争力

不想你离开。 提交于 2020-10-02 21:09:36
原文:http://dwz.win/Qf8 作者:Richard 翻译:精致码农-王亮 说明: 1. 本译文并不是完全逐句翻译的,存在部分语句我实在不知道如何翻译或组织就根据个人理解用自己的话表述了。 2. 本文有不少超链接,由于微信公众号和头条平台外链会被剔除 URL 地址,所以原来本是超链接的内容会显示为纯文本,如果你需要这些信息你可以移步到我的 知乎 和 博客园 阅读(搜索精致码农可找到我)。 今天我们发布了 .NET 5.0 Release Candidate 1 (RC1)。它是目前最接近 .NET 5.0 的一个版本,也是在 11 月正式发布之前的两个 RC 版本中的第一个 RC 版本。RC1 是一个“上线”版本,表示你可以在生产环境中使用它了。 与此同时,我们一直在寻找最终正式版发布之前应该被修复的任何关键错误报告。我们需要你的反馈来帮助我们一起跨越 .NET 5.0 正式发布这道胜利的终点线。 我们今天也发布了 ASP.NET Core 和 EF Core 的 RC1 版本。 你可以下载适用于 Windows、macOS 和 Linux 的 .NET 5.0 版本: 安装程序和二进制包 容器镜像 快速安装程序 发布说明 已知问题 GitHub Issue 跟踪 你需要最新的预览版 Visual Studio (包括 Visual Studio for Mac)

ASP.Net Core 3.1 中使用JWT认证

痞子三分冷 提交于 2020-10-02 13:20:50
JWT认证简单介绍 关于Jwt的介绍网上很多,此处不在赘述,我们主要看看jwt的结构。 JWT主要由三部分组成,如下: HEADER.PAYLOAD.SIGNATURE HEADER 包含token的元数据,主要是加密算法,和签名的类型,如下面的信息,说明了 加密的对象类型是JWT,加密算法是HMAC SHA-256 {"alg":"HS256","typ":"JWT"} 然后需要通过BASE64编码后存入token中 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 Payload 主要包含一些声明信息(claim),这些声明是key-value对的数据结构。 通常如用户名,角色等信息,过期日期等,因为是未加密的,所以不建议存放敏感信息。 {"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name":"admin","exp":1578645536,"iss":"webapi.cn","aud":"WebApi"} 也需要通过BASE64编码后存入token中