ASP.NET Core

ASP.Net Core 3.1 With Autofac ConfigureServices returning an System.IServiceProvider isn't suppor...

人盡茶涼 提交于 2020-08-13 17:25:55
ASP.Net Core 3.1 With Autofac ConfigureServices returning an System.IServiceProvider isn't supported. 前言 Autofac在ASP.Net Core3.0以后,集成方式有所调整。在ASP.Net Core2中我们一般是把 Startup 的 ConfigureServices 方法返回值类型改为 IServiceProvider 。我们可以先看一下部分代码: public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddMvc(); //xxxxxx你的其他代码 省略........... //用Autofac来替换IOC容器 返回值由 void 修改为 IServiceProvider var containerBuilder = new ContainerBuilder(); containerBuilder.RegisterModule<CustomAutofacModule>(); containerBuilder.Populate(services); var container = containerBuilder.Build(); //将当前的容器保存起来

2020 Web界面开发:DevExtreme全新的Diagram控件、文件管理器

 ̄綄美尐妖づ 提交于 2020-08-13 16:06:25
DevExpress ASP.NET Web Forms Controls拥有针对Web表单(包括报表)的110+种UI控件,DevExpress ASP.NET MVC Extensions是服务器端MVC扩展或客户端控件,由轻量级JavaScript小部件提供支持的70+个高性能DevExpress ASP.NET Core Controls,包含功能完善的报表平台,DevExpress ASP.NET Web Forms Bootstrap Controls利用轻量级渲染、响应式布局和现代性能优化技术,扩展网站的受众范围并提高搜索排名。 DevExpress DevExtreme组件 v20.1日前震撼发布,新版本全新的Diagram控件、文件管理器、全新的Gantt控件等,欢迎下载v20.1体验! DevExpress DevExtreme v20.1正式版下载 全新的Diagram控件 Diagram control 于2019年5月作为社区技术预览(CTP)首次引入,此更新标志着其正式发布。 其功能包括: 40多种可自定义和可扩展的形状(包括OrgChart形状) 可折叠形状的容器 自定义形状 绑定到外部数据 直角和直角图连接器 以JSON格式加载/保存图 导出为SVG,PNG和JPEG 自动布局 模板 全屏和简单视图模式 只读模式 可配置页面设置 自定义用户界面

ASP.NET Core搭建多层网站架构【5-网站数据库实体设计及映射配置】

|▌冷眼眸甩不掉的悲伤 提交于 2020-08-13 14:06:55
2020/01/29, ASP.NET Core 3.1, VS2019, EntityFrameworkCore 3.1.1, Microsoft.Extensions.Logging.Console 3.1.1, Microsoft.Extensions.Logging.Debug 3.1.1 摘要:基于ASP.NET Core 3.1 WebApi搭建后端多层网站架构【5-网站数据库实体设计及映射配置】 网站数据库实体设计,使用EntityFrameworkCore 3.1 FluentAPI映射配置实体,网站启动时创建数据库并添加种子数据,开发调试时可以看到执行的具体sql语句 文章目录 此分支项目代码 本章节介绍后台管理的网站数据库实体设计,使用FluentAPI方式配置数据库字段映射,网站启动时创建数据库并添加种子数据 需求分析 首先要实现的功能有用户登录、角色管理、日志记录 大概有四张表:用户表、密码表、角色表、日志表 日志表: 用户表: 密码表: 角色表: 好像博客园md不支持表格功能?所以只能截图展示,excel表格上传至项目docs文件夹中 字段设计说明 日志表主键Id是数据库自增的,也就是在向数据库插入日志时,不用管Id,往里写入就行 用户表、角色表的Id都是long类型的,也就是使用雪花算法生成的Id 密码表的主键是Account,UserId是用户表外键

asp.net core 3.1多种身份验证方案,cookie和jwt混合认证授权

我是研究僧i 提交于 2020-08-13 12:16:49
开发了一个公司内部系统,使用asp.net core 3.1。在开发用户认证授权使用的是简单的cookie认证方式,然后开发好了要写几个接口给其它系统调用数据。并且只是几个简单的接口不准备再重新部署一个站点,所以就直接在MVC的项目里面加了一个API区域用来写接口。这时候因为是接口所以就不能用cookie方式进行认证,得加一个jwt认证,采用多种身份验证方案来进行认证授权。 认证授权 身份验证是确定用户身份的过程。 授权是确定用户是否有权访问资源的过程。 在 ASP.NET Core 中,身份验证由 IAuthenticationService 负责,而它供身份验证中间件使用。 身份验证服务会使用已注册的身份验证处理程序来完成与身份验证相关的操作。 认证-->授权 关于认证授权我们要区分认证和授权是两个概念,具体可查看MSDN官方文档也可以搜索其它文章看看,讲的很多。其中包括OAuth 2.0 以及jwt的相关知识都有很多资料并且讲解的很好。 身份认证 身份验证方案由 Startup.ConfigureServices 中的注册身份验证服务指定: 方式是在调用 services.AddAuthentication 后调用方案特定的扩展方法(例如 AddJwtBearer 或 AddCookie)。 这些扩展方法使用 AuthenticationBuilder.AddScheme

ASP.NET Core WebAPI中的分析工具MiniProfiler

青春壹個敷衍的年華 提交于 2020-08-13 09:59:22
介绍 作为一个开发人员,你知道如何分析自己开发的Api性能么? 在Visual Studio和Azure中, 我们可以使用Application Insight来监控项目。除此之外我们还可以使用一个免费工具 Stackify Prefix ,它允许追踪所有的Http请求, 这里有一篇博客讲解了如何使用 Stackify Prefix ( Scalable and Performant ASP.NET Core Web APIs: Profiling and Monitoring )。 本文我将引入另外一个工具 MiniProfiler , 我将讲解如何将 MiniProfiler 集成到ASP.NET Core WebAPI中。 与 Stackify Prefix 相似, MiniProfiler 也是一款免费的工具(官网地址: https://miniprofiler.com/dotnet/ ),你可以使用它精确的分析ASP.NET和ASP.NET Core应用程序的任何代码。 Tips: MiniProfiler 在ASP.NET和控制台程序中也可以使用哦。 安装 我们可以使用Nuget来下载这个包。 PM> Install-Package MiniProfiler.AspNetCore.Mvc 配置 Startup.cs MiniProfiler 配置起来很简单

[ASP.NET Core 3框架揭秘] 依赖注入[7]:服务消费

血红的双手。 提交于 2020-08-13 09:03:16
包含服务注册信息的IServiceCollection集合最终被用来创建作为依赖注入容器的IServiceProvider对象。当需要消费某个服务实例的时候,我们只需要指定服务类型调用IServiceProvider的GetService方法即可,IServiceProvider对象就会根据对应的服务注册提供所需的服务实例。 一、IServiceProvider 如下面的代码片段所示,IServiceProvider接口定义了唯一的GetService方法根据指定的类型来提供对应的服务实例。当利用包含服务注册的IServiceCollection对象创建出IServiceProvider对象之后,我们只需要将服务注册的服务类型(对应于ServiceDescriptor的ServiceType属性)作为参数调用GetService方法,该方法就能根据服务注册信息为我们提供对应的服务实例。 public interface IServiceProvider { object GetService(Type serviceType); } 针对IServiceProvider对象的创建体现在IServiceCollection接口的三个BuildServiceProvider扩展方法重载上。如下的代码片段所示,这三个扩展方法提供的都是一个类型为ServiceProvider的对象

.NET Core 选项模式【Options】的使用

别来无恙 提交于 2020-08-13 06:51:38
ASP.NET Core引入了Options模式,使用类来表示相关的设置组。简单的来说,就是用强类型的类来表达配置项,这带来了很多好处。利用了系统的依赖注入,并且还可以利用配置系统。它使我们可以采用依赖注入的方法直接使用绑定的一个POCO对象,这个POCO对象就叫做Options对象。也可以叫做配置对象。 以下大多内容来自官方文档,我只是个翻译官或者叫搬运工吧! 引入Options扩展包 PM>Package-install Microsoft.Extensions.Options 绑定分层配置 在appsetting.json文件增加如下配置 "Position": { "Title": "Editor", "Name": "Joe Smith" } 创建以下 PositionOptions 类: public class PositionOptions { public const string Position = "Position"; public string Title { get; set; } public string Name { get; set; } } 选项类: 必须是包含公共无参数构造函数的非抽象类。 类型的所有公共读写属性都已绑定。 不会绑定字段。 在上面的代码中,Position 未绑定。 由于使用了 Position 属性

ASP.NET Core MVC+Layui使用EF Core连接MySQL执行简单的CRUD操作

爱⌒轻易说出口 提交于 2020-08-13 06:41:49
前言:   本章主要通过一个完整的示例讲解ASP.NET Core MVC+EF Core对MySQL数据库进行简单的CRUD操作,希望能够为刚入门.NET Core的小伙伴们提供一个完整的参考实例。关于ASP.NET Core MVC+EF操作MsSQL Server详情请参考官方文档( https://docs.microsoft.com/zh-cn/aspnet/core/data/ef-mvc/?view=aspnetcore-3.1 )。 示例实现功能预览: 博客实例源码下载地址: https://github.com/YSGStudyHards/ASP.NET-Core-MVC-Layui-EF-Core-CRUD_Sample 一、创建ASP.NET Core Web应用程序: 注意,本章节主要以APS.NET Core 3.1版本作为博客的样式实例! 二、添加EF Core NuGet包:   若要在项目中使用EF Core操作MySQL数据库,需要安装相应的数据库驱动包。 本章教程主要使用 MySQL数据库,所以我们需要安装相关驱动包MySql.Data.EntityFrameworkCore。 安装方式: 点击工具=>NuGet包管理器=>程序包管理器控制台输入以下命令: Install-Package MySql.Data

更优雅的在 Xunit 中使用依赖注入

柔情痞子 提交于 2020-08-13 05:34:12
Xunit.DependencyInjection 7.0 发布了 Intro 上次我们已经介绍过一次大师的 Xunit.DependencyInjection https://www.cnblogs.com/weihanli/p/xuint-dependency-injection.html ,最近大师完成了 7.0 的重构并且已经正式发布,已经可以直接安装使用了 7.0 为我们带来了更好的编程体验,在 6.x 的版本中,我们的 Startup 需要继承于 DependencyInjectionTestFramework 而且需要设置一个 assembly attribute,这在 7.0 中都不需要了,下面我们来看看有了哪些变化 Startup 的变化 首先来看大师给出的 diff -[assembly: TestFramework("Your.Test.Project.Startup", "Your.Test.Project")] namespace Your.Test.Project { - public class Startup : DependencyInjectionTestFramework + public class Startup { - public Startup(IMessageSink messageSink) : base(messageSink)

Asp.net Core认证和授权:Cookie认证

£可爱£侵袭症+ 提交于 2020-08-13 04:00:17
原文: Asp.net Core认证和授权:Cookie认证 这里我只是记录下自己在学习中的点滴和一些不懂的地方 Cookie一般是用户网站授权,当用户访问需要授权(authorization)的页面,程序会判断是否已经授权,并认证 添加认证代码: 引入命名空间:Microsoft.AspNetCore.Authentication.Cookies; 添加服务 public void ConfigureServices ( IServiceCollection services ) { services . AddMvc (). SetCompatibilityVersion ( CompatibilityVersion . Version_2_2 ); services . AddAuthentication ( CookieAuthenticationDefaults . AuthenticationScheme ) . AddCookie (); } 注册中间件,添加到管道 app.UseAuthentication(); 注意:一定要在app.UseMvc之前添加 我们通过源码可以看到cookie的一些默认配置 // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the