ASP.NET Core

ASP.NET CORE之上传文件夹

好久不见. 提交于 2020-04-17 20:46:24
最近闲余时间在做一个仿百度网盘的项目,其中就有一个上传文件夹的功能。查了下网上好像对这个问题的描述比较少,所以在此记录一下。 1、网上找来找去发现 webkitdirectory 这个东西,H5的一个新的属性吧,就是在文件控件上标记这个属性可以获取到选择文件夹里的所有文件的。 < input type ="file" name ="file" webkitdirectory > 特地看了下百度网盘网页版也是使用的这个属性,但是网上都说该属性只有chrome浏览器支持。然后我就不信,用360浏览器试了试还是可以用。结果发现360有两种模式(极速模式和兼容模式),极速模式是以Blink(Webkit)为内核的浏览模式,而chrome好像也是使用的这个内核。所以说我刚刚试的也可以用,但是切换到兼容模式则不能用了(IE内核)。 2、言归正传,直接贴代码吧。 < input type ="file" name ="file" webkitdirectory > < button id ="upload" type ="button" onclick ="Upload()" > 上传 </ button > var files = []; $(document).ready( function () { $( 'input').change( function () { files =

Asp.Net Core 中IdentityServer4 授权中心之自定义授权模式

主宰稳场 提交于 2020-04-17 14:15:54
【推荐阅读】微服务还能火多久?>>> 一、前言 上一篇我分享了一篇关于 Asp.Net Core 中IdentityServer4 授权中心之应用实战 的文章,其中有不少博友给我提了问题,其中有一个博友问我的一个场景,我给他解答的还不够完美,之后我经过自己的学习查阅并阅读了相关源代码,发现 IdentityServer4 可以实现自定义 GrantType 授权方式。 声明 :看这篇文章时如果你没有阅读我上一篇 Asp.Net Core 中IdentityServer4 授权中心之应用实战 的文章,那请先移步看上面的文章,再来看这篇文章会更加清晰,感谢支持,感谢关注! 二、场景模拟 上篇文章已经把电商系统从单一网关架构升级到多网关架构,架构图如下: 然而上面的 授权中心 使用的是 密码授权模式 ,但是对于 微信小程序 、 微信公众号商城 端使用的授权还不是很合适; 微信小程序 和 微信公众号 微商城客户端的场景如下: 用户访问小程序商城或者微信公众号商城后会到 微信服务端 获得授权拿到相关的用户 openId 、 unionId 、 userName 等相关信息,再携带 openId 、 unionId 、 userName 等信息访问 授权中心 网关,进行授权,如果不存在则自动注册用户,如果存在则登录授权成功等操作。那这个场景后我该如何改造 授权中心 服务网关呢?经过研究和探讨

ASP.NET Core中的Controller

别说谁变了你拦得住时间么 提交于 2020-04-17 08:34:16
【推荐阅读】微服务还能火多久?>>> ASP.NET CORE出现之前我们实现的Controller,MVC都继承自Controller基类,WebApi的话继承自ApiController。现在ASP.NET CORE把MVC跟WebApi合并了,已经不再区分MVC或者WebApi。ASP.NET CORE的Controller继承结构也发生了变化。我们看其他示例的时候会发现有些继承自Controller有些继承自ControllerBase。事实上ControllerBase是Controller的基类。也就是说如果你继承自Controller,其实就是继承了ControllerBase。那什么时候该选择直接继承ControllerBase呢? ControllerBase 我们先看看ControllerBase的元数据: 很长并没有截全。可以看到ControllerBase是个抽象类,并且实现了大量的虚方法。这些虚方法大都是对应了Http的状态码。 比如: public virtual OkResult Ok(); //http status 200 public virtual NotFoundResult NotFound(); //http status 404 public virtual ForbidResult Forbid(); //http status

通过极简模拟框架让你了解ASP.NET Core MVC框架的设计与实现[中篇]:请求的响应

百般思念 提交于 2020-04-16 21:39:55
【推荐阅读】微服务还能火多久?>>> 《 200行代码,7个对象——让你了解ASP.NET Core框架的本质 》让很多读者对ASP.NET Core管道有了真实的了解。在过去很长一段时间中,有很多人私信给我:能否按照相同的方式分析一下MVC框架的设计与实现原理,希望这篇文章能够满足你们的需求。我们在《 [上篇]:路由整合 》将定义在Controller类型中的Action方法简化成只返回Task或者Void的方法,并让方法自身去完成包括对请求予以相应的所有请求处理任务,但真实的MVC框架并非如此。真正的MVC框架中具有一个名为IActionResult的重要结构,顾名思义,IActionResult对象一般会作为Action方法的返回值,针对请求的响应任务基本上会由这个对象来实现。 源代码下载: IActionResult的执行 IActionResult的类型转换 一、IActionResult 作为Action方法执行结果旨在对请求做最终响应的IActionResult接口同样具有极为简单的定义。如下main的代码片段所示,IActionResult对象针对请求的响应实现在它唯一的ExecuteResultAsync方法中,针对待执行Action的ActionContext上下文是其唯一的输入参数。 public interface IActionResult { Task

Asp.Net Core EndPoint 终结点路由工作原理解读

佐手、 提交于 2020-04-16 12:27:29
【推荐阅读】微服务还能火多久?>>> 一、背景 在本打算写一篇关于 Identityserver4 的文章时候,却发现自己对 EndPoint -终结点路由还不是很了解,故暂时先放弃了 IdentityServer4 的研究和编写;所以才产生了今天这篇关于 EndPoint (终结点路由) 的文章。 还是跟往常一样,打开电脑使用强大的Google 和百度搜索引擎查阅相关资料,以及打开Asp.net core 3.1 的源代码进行拜读,同时终于在我的实践及测试中对 EndPoint 有了不一样的认识,说到这里更加敬佩微软对Asp.net core 3.x 的框架中管道模型的设计。 我先来提出以下几个问题: 当访问一个Web 应用地址时,Asp.Net Core 是怎么执行到 Controller 的 Action 的呢? EndPoint 跟普通路由又存在着什么样的关系? UseRouting() 、 UseAuthorization() 、 UserEndpoints() 这三个中间件的关系是什么呢? 怎么利用 EndPoint 终结者路由来拦截Action 的执行并且记录相关操作日志?(时间有限,下一篇文章再来分享整理) 二、拜读源码解惑 Startup 代码 我们先来看一下 Startup 中简化版的代码,代码如下: public void ConfigureServices

Asp.Net Core EndPoint 终结点路由工作原理解读

左心房为你撑大大i 提交于 2020-04-16 12:20:48
【推荐阅读】微服务还能火多久?>>> 一、背景 在本打算写一篇关于 Identityserver4 的文章时候,却发现自己对 EndPoint -终结点路由还不是很了解,故暂时先放弃了 IdentityServer4 的研究和编写;所以才产生了今天这篇关于 EndPoint (终结点路由) 的文章。 还是跟往常一样,打开电脑使用强大的Google 和百度搜索引擎查阅相关资料,以及打开Asp.net core 3.1 的源代码进行拜读,同时终于在我的实践及测试中对 EndPoint 有了不一样的认识,说到这里更加敬佩微软对Asp.net core 3.x 的框架中管道模型的设计。 我先来提出以下几个问题: 当访问一个Web 应用地址时,Asp.Net Core 是怎么执行到 Controller 的 Action 的呢? EndPoint 跟普通路由又存在着什么样的关系? UseRouting() 、 UseAuthorization() 、 UserEndpoints() 这三个中间件的关系是什么呢? 怎么利用 EndPoint 终结者路由来拦截Action 的执行并且记录相关操作日志?(时间有限,下一篇文章再来分享整理) 二、拜读源码解惑 Startup 代码 我们先来看一下 Startup 中简化版的代码,代码如下: public void ConfigureServices

ASP.NET Core笔记(4)

生来就可爱ヽ(ⅴ<●) 提交于 2020-04-16 09:11:12
【推荐阅读】微服务还能火多久?>>> 选项接口 IOptionsSnapshot与IOptionsMonitor的区别 选项的后期配置 选项的验证 在 ASP.NET Core笔记(3) - 配置 中介绍了各种配置提供程序以及配置的读取方式,但实际使用中,不推荐应用程序直接从一堆配置中读取的做法,而是使用强类型绑定,将配置按组绑定到不同服务所属的类。使用这种方式可以让配置方案遵守两个重要的软件工程原则: 接口分离原则 (ISP) 或封装 – 依赖于配置设置的方案(类)仅依赖于其使用的配置设置。 关注点分离 – 应用的不同部件的设置不彼此依赖或相互耦合。 选项接口 ASP.NET Core选项模式常用的接口有 IOptions IOptionsSnapshot IOptionsMonitor IOptions在配置更改时无法对应变更选项的值,只能重启应用。IOptionsSnapshot和IOptionsMonitor则具有这种能力。 选项可以作为服务在使用时被注入,下面的代码模拟了选项的使用场景,OrderServiceOptions作为OrderService的选项被注入,OrderService又在控制器中被注入: public interface IOrderService { int ShowMaxOrderCount(); } public class

使用 ASP.NET Core 创建 Web API

你说的曾经没有我的故事 提交于 2020-04-15 16:22:40
【推荐阅读】微服务还能火多久?>>> .NET Core提供了最先进、最成熟和最广泛的类库、公共API、多语言支持和工具。借助于Visual Studio 2019和Visual Studio Code 这些最先进和最现代的开发工具,使得.NET Core成为开发人员最高效的平台之一。 .NET Core是一个通用的软件开发框架。它允许开发人员构建各种软件,包括Web,桌面,移动,云,游戏,物联网等。 教程地址: https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/first-web-api?view=aspnetcore-3.1&tabs=visual-studio 个人项目实战: http://dwregapi.ycz128.com/swagger/index.html 来源: oschina 链接: https://my.oschina.net/u/4312833/blog/3235686

关于asp.net core中mvc的入门感想

我只是一个虾纸丫 提交于 2020-04-15 15:38:24
【推荐阅读】微服务还能火多久?>>> 很久很久以前,还是大学里面学过asp.net,那时候感觉就是开发网站速度很快,基本上都是使用form方式就能开发可以使用的网站了。 后来工作关系,一直都是用java的那套mvc框架,而且基本上由于在大公司团队工作,我们自己是不需要写框架的,连业务流程都是通过固定代码格式模板编写,业务逻辑则通过数据库存储过程实现,这样几乎于java语言也关系不大了。 现在稍微有点闲,看asp.net core都出来了,于是又重新看看,发现自己很多都忘记了,只好翻看了https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/first-mvc-app/adding-view?view=aspnetcore-2.1&tabs=visual-studio 微软文档中关于这个的介绍,整体感觉很顺利,感觉还是那么的容易。虽然之前在几家大银行工作的时候都是使用java为主,但是我个人感觉现在的c#的asp.net mvc及微软提供的相关工具库,一点都不逊于java的ssm。如果考虑快速构建和成本开销的话,c#应该是优选。而且根据我现在开发C#和C++程序的结果看,两者在一般应用场景下,性能也几乎一样。 来源: oschina 链接: https://my.oschina.net/u/4342549/blog/3235620

.net core 集成 sentry 进行异常报警

心已入冬 提交于 2020-04-15 12:18:24
【推荐阅读】微服务还能火多久?>>> 原文: .net core 集成 sentry 进行异常报警 .net core 集成 sentry 进行异常报警 Intro # Sentry 是一个实时事件日志记录和汇集的平台。其专注于错误监控以及提取一切事后处理所需信息而不依赖于麻烦的用户反馈。它分为客户端和服务端,客户端(目前客户端有 C#, Python, PHP, JavaScript, Ruby等多种语言)就嵌入在你的应用程序中间,程序出现异常就向服务端发送消息,服务端将消息记录到数据库中并提供一个web页方便查看。 Sentry 是 Python 写的一个开源的项目 https://github.com/getsentry/sentry 而且可以满足私有部署的需求 官方介绍: Sentry is cross-platform application monitoring, with a focus on error reporting. Sentry fundamentally is a service that helps you monitor and fix crashes in realtime. The server is in Python, but it contains a full API for sending events from any