ASP.NET Core

在WPF中使用.NET Core 3.0依赖项注入和服务提供程序

时光毁灭记忆、已成空白 提交于 2020-10-27 04:46:16
前言 我们都知道.NET Core提供了对依赖项注入的内置支持。我们通常在ASP.NET Core中使用它(从Startup.cs文件中的ConfigureServices方法开始),但是该功能不限于此框架,我们可以在WPF和Windows Forms应用程序中使用它。 实践 新建项目 将所需的NuGet包添加到项目中。 Microsoft.Extensions.DependencyInjection Microsoft.Extensions.Options.ConfigurationExtensions Microsoft.Extensions.Configuration.Json 然后,将一个名为appsettings.json的文件添加到项目的根文件夹。将其“ 构建操作”属性设置为“ 内容”,将“复制到输出目录”设置为“ 复制”(如果较新): { "AppSettings": { "AppName": "SampleNetCore3WpfDependencyInjection" } } 创建一个AppSettings.cs文件来保存配置设置。该文件将映射我们在appsettings.json中编写的设置: public class AppSettings { public string AppName { get; set; } } 创建一个示例服务: public

十分钟搭建自己的私有NuGet服务器-BaGet

这一生的挚爱 提交于 2020-10-26 05:30:26
目录 前言 开始 搭建BaGet 上传程序包 在vs中使用 其他 最后 前言 NuGet是用于微软.NET(包括 .NET Core)开发平台的软件包管理器。NuGet能够令你在项目中添加、移除和更新引用的工作变得更加快捷方便。 通常使用NuGet都是官方的服务,但你有没有想过搭建自己的NuGet呢?在私有的NuGet上托管一些自己的类库,公司内部的类库等。。。搭建私有NuGet的方法有很多,比如NuGet.Server、ProGet、MyGet等等。本文使用的是BaGet,搭建过程也非常简单,下面进入正题。 开始 搭建BaGet BaGet是一个构建于ASP.NET Core 基础上的 NuGet V3 服务器的开源实现。 github地址: https://github.com/loic-sharma/BaGet 下载release包,我下载的是最新预览版,你也可以选择其他版本: https://github.com/loic-sharma/BaGet/releases/download/v0.3.0-preview4/BaGet.zip 你可以按需要修改一下端口配置,默认是5000: 在解压目录下打开命令行,执行: dotnet BaGet.dll 浏览器访问: http://localhost:8020/ 这样,NuGet服务就搭建完成了,是不是很简单? 上传程序包

ASP.NET Core MVC如何上传文件及处理大文件上传

给你一囗甜甜゛ 提交于 2020-10-26 04:01:09
用文件模型绑定接口:IFormFile (小文件上传) 当你使用IFormFile接口来上传文件的时候,一定要注意,IFormFile会将一个Http请求中的所有文件都读取到服务器内存后,才会触发ASP.NET Core MVC的Controller中的Action方法。这种情况下,如果上传一些小文件是没问题的,但是如果上传大文件,势必会造成服务器内存大量被占用甚至溢出,所以IFormFile接口只适合小文件上传。 一个文件上传页面的Html代码一般如下所示: < form method ="post" enctype ="multipart/form-data" action ="/Upload" > < div > < p > Upload one or more files using this form: </ p > < input type ="file" name ="files" /> </ div > < div > < input type ="submit" value ="Upload" /> </ div > </ form > 为了支持文件上传,form标签上一定要记得声明属性enctype="multipart/form-data",否则你会发现ASP.NET Core MVC的Controller中死活都读不到任何文件。Input type=

详解Microsoft.AspNetCore.CookiePolicy

梦想的初衷 提交于 2020-10-24 17:57:46
原文: 详解Microsoft.AspNetCore.CookiePolicy 详解Asp.Net Core中的Cookie策略 目录 详解Asp.Net Core中的Cookie策略 功能介绍 使用Cookie策略 从UseCookiePolicy方法入手 实现IResponseCookies接口 实现ITrackingConsentFeature接口 CookiePolicyOptions类的功能 总结 这篇主要介绍 Microsoft.AspNetCore.CookiePolicy 这个类库的作用。 功能介绍 实现 IResponseCookies 接口,添加、删除cookie时加入自定义控制方法,并支持全局cookie属性设置。 实现 CookieOptions.IsEssential 的功能,该属性标识当前属性是否必须的或是否绕过 ITrackingConsentFeature 的检查。 实现 ITrackingConsentFeature 接口,该接口主要是向cookie中添加并检索用户确认设置。 使用Cookie策略 Asp .Net Core 是一个高度组件化的框架,很多功能比如授权,认证,回话状态等都是通过中间件的方式引入的,而 Microsoft .AspNetCore .CookiePolicy 扩展也是通过中间件的方式引入的。

NetCore 基于identity的登录验证授权机制

被刻印的时光 ゝ 提交于 2020-10-24 14:43:49
十年河东,十年河西,莫欺少年穷 学无止境,精益求精 本篇探讨下基于NetCore_2.1版本的登录验证授权机制, 学过MVC的童鞋们都知道,Form验证中,MVC中采用的是FormTicket的验证授权机制,那么在NetCore中怎么实现登录验证授权呢? 其实我们在Asp.Net Core项目中的认证,也是比较简单的。现在我们就通过构建一个小项目来一步步来探讨,并最终实现NetCore的登录验证及授权。 1、新建一个解决方案(NetCoreAuth),该解决方案中包含五个项目,如下: 1.1、项目NetCoreAuth是一个MVC项目,通过VS直接创建即可,我们称之为:UI层 1.2、项目NetCoreInterface是接口层,我们都知道NetCore通过依赖注入来进行代码解耦,因此,接口层是必不可少的 1.3、项目NetCoreService是实现接口的服务层,用于依赖注入时,构建和接口的映射关系,也是必不可少的一层 1.4、项目NetCoreModels是一个Model层,一般项目中,用来构建数据DTO,因此,可以说也是必不可少的一层 1.5、项目NetCoreCommon是一个公共方法层,用于存放通用类,通用枚举,静态变量等 2、项目构建完毕后,我们先来完善 除 NetCoreAuth层(UI层)之外的代码 2.1、项目NetCoreCommon层很简单,只有一个类

[Hei.Captcha] Asp.Net Core 跨平台验证码实现

六月ゝ 毕业季﹏ 提交于 2020-10-24 07:55:31
写在前面 说起来比较丢脸。我们有个手机的验证码发送逻辑需要使用验证码,这块本来项目里面就有验证码绘制逻辑,.Net Framework的,使用的包是 System.Drawing ,我把这验证码绘制逻辑复制到.Net Core的新项目引用对比包 System.Drawing.Common ,windows下面验证码正常,CentOs下面死活不能正常,像这样: (左边为CentOs运行结果,右为Windows) 依赖库检查安装; 字体检查安装; 逻辑检查; 折腾了一天多放弃了,决定重新写。 我看了市面上的各种验证码,使用第三方的,免费的都有很多限制,并随时有可能开始收费(用户量上去后就收费,俗称“养猪”); 有些比较大平台的已经开始收费或者即将收费(无可厚非,不点名); 视野有限,没有都一一了解到,如果有免费的,限制又比较少的,使用体验不错的第三方验证码,欢迎留言~~ 综上,我决定自己绘制 选择图片绘制库 GitHub上面我看到比较多星的是: SixLabors / ImageSharp dlemstra / Magick.NET mono / SkiaSharp 综合考虑后选择了:ImageSharp 官方文档:https://sixlabors.github.io/docs/ 成果 Hei.Captcha 一个.net core,跨平台的验证码生成工具包,基于ImageSharp

ASP.NET Core3.1使用Identity Server4建立Authorization Server-1

拟墨画扇 提交于 2020-10-23 18:39:20
前言 网上关于Identity Server4的资料有挺多的,之前是一直看杨旭老师的,最近项目中有使用到,在使用.NET Core3.1的时候有一些不同。所以在此记录一下。 预备知识: https://www.cnblogs.com/cgzl/p/9405796.html 本文内容参考 杨旭老师之前博客: https://www.cnblogs.com/cgzl/p/7780559.html 官方文档: https://identityserver4.readthedocs.io/en/latest/ 如杨旭老师所说,官方文档真的很详细,有时间建议大家看下官方文档。 建立Authorization Server 建立ASP.Net Core项目使用空模板。 项目建立之后,运行方式改为使用控制台运行而不是IIS Express,以便查看各种debug信息。 这个已成为习惯,也是学习杨老师的,确实比较方便,当然如果不喜欢可以不设置,只需要端口号配置的时候对应好就可以的。 修改后文件代码为: { "profiles": { "IdentityServer4.AuthServer": { "commandName": "Project", "launchBrowser": true, "applicationUrl": "http://localhost:5000",

(一)学习了解OrchardCore笔记——开篇:基于asp.net core的OrchardCore

冷暖自知 提交于 2020-10-23 17:51:54
  想深入了解OrchadCore源码许久了,但是读源码的时候遇到很多问题而网上的参考资料太少了(几乎都是OrchadCms不带OrchardCore的),现在解决得差不多了,做下笔记方便自己查看,有错误之处也请大家帮忙指出,谢谢。   OrchardCore是一个基于asp.net core的cms(废话),其结构类似于asp.net core(为啥说类似我也不知道,asp.net core的源码我只看了一部分,似是而非吧)。因此,我将直接从asp.net core的角度来解析OrchardCore,从asp.net core的角度就是说关于asp.net core的靠自己理解,可以省略1万字。   废话结束,开始正题,源码直接github搜索OrchardCore就可以下载了,我直接用visual studio(我不用rider,首先我没钱买,其次我之前是弄.net framework不是java,我用的vs都是社区版)自带的git去clone半天(这小水管受不了后面直接码云找镜像仓库clone了)。   clone完了,第一个坑出现了,选择记得选择版本和分支,说多都是泪,OrchardCore支持的版本(从.net core 1.0到.net core 3.1都有)和自身的分支太多了,第一次接触没注意跳坑了导致各种出错(原因是我没有装对应的.net core版本,默认好像2

asp.net core之SignalR

时光怂恿深爱的人放手 提交于 2020-10-23 08:39:34
SignalR 是什么? ASP.NET Core SignalR 是一个开源的实时框架,它简化了向应用中添加实时 Web 功能的过程。 实时 Web 功能是服务器端能够即时的将数据推送到客户端,而无需让服务器等待客户端请求后才返回数据。 SignalR 主要适用于: 从服务器获取数据并高频更新的应用。比如股票,GPS应用等。 仪表板和监视应用。比如状态实时更新等。 需要通知的应用。比如即时聊天工具,以及社交网络里面的通知等。 协作应用。比如团体会议软件。 SignalR 支持下面几种底层传输技术: Web Socket 是不同于HTTP的另一种TCP协议。它是全双工的通信协议,浏览器和服务器之间可以相互通信。它会保持长连接状态只到被主动关闭。它支持文本和二进制的消息传输,也支持流媒体。其实正常的HTTP请求也是使用TCP Socket. Web Socket标准使用了握手机制把用于HTTP的Socket升级为使用WS协议的 WebSocket socket. 服务器发送事件 (Server Sent Events) 服务器可以在任何时间把数据发送到浏览器,而浏览器则会监听进来的信息,并使用一个叫做EventSource的对象用来处理传过来的信息。这个连接一直保持开放,直到服务器主动关闭它。它是单向通信,只能发生文本信息,而且很多浏览器都有最大并发连接数的限制。 长轮询(Long

【asp.net core 系列】13 Identity 身份验证入门

落爺英雄遲暮 提交于 2020-10-23 08:14:05
0. 前言 通过前两篇我们实现了如何在Service层如何访问数据,以及如何运用简单的加密算法对数据加密。这一篇我们将探索如何实现asp.net core的身份验证。 1. 身份验证 asp.net core的身份验证有 JwtBearer和Cookie两种常见的模式,在这一篇我们将启用Cookie作为身份信息的保存。那么,我们如何启用呢? 在Startup.cs 的ConfigureServices(IServiceCollection services) 方法里添加如下: services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme) .AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, options => { Configuration.Bind("CookieSettings",options); }); 此时可以启动一个权限验证,当用户访问需要验证的页面或接口时,如果没有登录,则会自动跳转到: https://localhost:5001/Account/Login?ReturnUrl=XXXX 其中ReturnUrl指向来源页。 1.1 设置验证 当我们在Startup类里设置启用了身份验证后