
ASP.NET Core
文章平均质量分 78
ASP.NET Core、Blazor、etc
JimCarter
与专业人员为伍,guyiming2011@126.com
展开
-
怎么把IdentityServer放到Ocelot网关后面?
在大多数项目中,可能gateway的域名和sso登录认证的域名是两个,网关只负责验证token,然后决定是否放行。但如果只有一个网关域名,且这个域名想包揽全局,签发token的任务它也想做该怎么弄呢?这个时候我们就可以通过配置Ocelot的`Route`实现:原创 2022-01-06 16:04:15 · 579 阅读 · 3 评论 -
ASP.NET Core 基础(十四)(完)——使用IMemoryCache缓存
文章目录1. 简介2. 内存缓存2.1 使用 `IMemoryCache`2.2 获取缓存数据 `GetOrCreate`、`GetOrCreateAsync`和`Get`2.3 移除缓存2.4 缓存配置项 `MemoryCacheEntryOptions`2.5 设置缓存大小 `SetSize`与`SizeLimit`2.6 缓存依赖2.7 其它说明3. 分布式缓存1. 简介Caching通过减少生成内容所需的工作,显著提高应用的性能和可伸缩性。 Caching适用于不经常更改且生成成本高的数据。A原创 2021-11-29 18:39:59 · 6380 阅读 · 3 评论 -
Blazor WebAssembly+Duende.IdentityServer+EF Core认证授权企业级实战
本文将从0开始介绍如何搭建一个适用于Blazor WASM应用的且基于OpenID和OAuth2.0的认证授权服务。我们会从创建空白项目一步一步开始,让大家了解到整个搭建流程,没有直接使用微软给定的认证模板或者IdentityServer的UI模板。- 前端使用的是Blazor WebAssembly最新版本(基于 .net 5.0),主要我认为相对于Blazor Server来说,这个才是Web的未来。而且可以充分开会客户机的性能。- 认证服务使用的Duende.IdentityServer原创 2021-08-24 17:40:13 · 3478 阅读 · 9 评论 -
Blazor WebAssembly身份认证与授权
文章目录1.简介2. 使用OIDC进行身份验证的流程3. 授权4. 验证库的使用4.1 配置依赖注入4.2 添加命令空间和js4.3 添加组件4.3.1 配置4.3.2 `RedirectToLogin`组件4.3.3 `LoginDisplay`组件5.常见组件和服务5.1 `Authentication`组件5.2 `AuthorizeView` 组件5.3 `AuthenticationStateProvider` 服务5.3.1 自定义`AuthenticationStateProvider`服务6原创 2021-08-18 14:37:05 · 6193 阅读 · 1 评论 -
Blazor如何调用JS方法,C#与JS互操作
1. 可放置JavaScript方法的位置js方法可以在以下几个位置:1.1 在<head>里(不推荐)<head> <script> window.jsMethod = (methodParameter) => { ... }; </script></head>为什么不推荐这么放:如果JS依赖于Blazor,那么互操作就会失败。而且也可能会导致页面响应变慢。1.2 在&l原创 2021-07-01 15:19:04 · 4160 阅读 · 0 评论 -
【Blazor】解决Blazor WebAssembly跨域访问后台服务问题
1. 前言因为Blazor Server不存在跨域问题,所以这里我们针对的是Blazor Webassembly。浏览器跨域问题是啥不用做过多解释,当blazor请求其它服务提供的接口时,使用的HttpClient类本质调用的还是浏览器的fetch函数,所以依然处于浏览器的管辖范围内,还是有跨域问题。2. 解决熟悉react开发的同学应该知道Node作为react的Host,可以通过配置一个类似proxy.js的文件代为请求具体的服务接口。所以解决方法其实也很简单:通过服务端代理转发请求。但是解决原创 2021-06-25 17:35:19 · 3814 阅读 · 1 评论 -
【Blazor】 设置路径前缀(pathPrefix)
1. 前言一般来说,我们的web应用都是部署在根域名下面,通过类似http://localhost/index这样类似的url进行访问。但是随着业务越来越多也越来越复杂,我们可能会将一个系统拆分为多个子应用,通过http://localhost/app1/index、http://localhost/app2/index来访问。这里的app1、app2对于Blazor来说就是路径前缀,接下来会详细介绍如何配置前缀,使Blazor称为一个子应用2. 配置Blazor若要使用路径前缀,需要在3个地方进原创 2021-06-15 15:00:50 · 1910 阅读 · 2 评论 -
在ASP.NET Core中任意位置获取HttpContext
此文是在官方文档的基础上做的个人总结,一些简单的内容就没用再列出来了,参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/http-context?view=aspnetcore-5.0在Razor Page的PageModel中可以直接使用HttpContext属性。public class AboutModel : PageModel{ public string Message { get; set; .原创 2021-04-29 17:13:19 · 2104 阅读 · 0 评论 -
ASP.NET Core应用(三)——自定义中间件
此文是在官方文档的基础上做的个人总结,一些简单的内容就没用再列出来了,参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/web-api/?view=aspnetcore-5.0中间件是一种装配到应用管道用来处理请求与响应的组件。在前面的文章中我们介绍了框架自带的一些中间件,这次我们来介绍下如何自定义中间件。1.自定义中间件首先自定义一个中间件类:public class RequestCultureMiddleware{ p.原创 2021-04-29 15:47:49 · 615 阅读 · 0 评论 -
ASP.NET Core 基础(十三)——模型绑定与模型验证
此文是在官方文档的基础上做的个人笔记,一些简单的内容就没用再列出来了,参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/mvc/models/model-binding?view=aspnetcore-5.01.模型绑定作用:从各种数据源(路由、表单、query string等)中检索数据。通过方法的入参和公共属性向controller和razor page提供数据。将字符串转为.net类型更新复杂类型的属性1.1 一个简单的模型绑.原创 2021-04-29 14:16:45 · 3700 阅读 · 1 评论 -
ASP.NET Core 基础(十二)—— Web API概述
此文是在官方文档的基础上做的个人笔记,一些简单的内容就没用再列出来了,参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/web-api/?view=aspnetcore-5.01.web api返回值类型框架提供以下三种返回类型:特定类型(如string、自定义对象、List等)IActionResultActionResult<T>1.1特定类型1.1.1返回一个List:[HttpGet]public List&.原创 2021-04-25 17:13:41 · 1861 阅读 · 0 评论 -
ASP.NET Core基础(十一)——静态文件Static files
此文是在官方文档的基础上做的个人笔记,一些简单的内容就没用再列出来了,参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/http-requests?view=aspnetcore-5.0默认情况下,诸如HTML、css、图像、js之类的静态资源,应用不需要特殊处理直接提供出去。静态资源一般都存放在wwwroot文件夹中。1.提供静态文件1.1 提供wwwroot目录下的静态文件直接调用app.UseStaticFil.原创 2021-04-20 18:00:16 · 2535 阅读 · 1 评论 -
ASP.NET Core中使用IHttpClientFactory发出HTTP请求
此文是在官方文档的基础上做的个人笔记,一些简单的内容就没用再列出来了,参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/http-requests?view=aspnetcore-5.0IHttpClientFactory有以下几个优势:便于与Polly、Refit等第三方库继承。将委托添加到http请求管道中,实现类似asp.net core中间件的功能。因为复用HttpClientMessageHandler可.原创 2021-04-20 17:55:36 · 1589 阅读 · 0 评论 -
ASP.NET Core基础(十)——错误处理Handle Errors
此文是在官方文档的基础上做的个人笔记,一些简单的内容就没用再列出来了,参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/error-handling?view=aspnetcore-5.0框架具有用于处理错误的内置功能,如:开发人员异常页自定义错误页静态状态代码页启动异常处理1.异常处理lambdapublic void Configure(IApplicationBuilder app, IWebHost.原创 2021-04-20 17:52:27 · 612 阅读 · 0 评论 -
ASP.NET Core 基础(九)——路由Routing
此文是在官方文档的基础上做的个人笔记,一些简单的内容就没用再列出来了,参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/routing?view=aspnetcore-5.0定义:路由是负责匹配传入的http请求,然后进行发送到应用的可执行终结点(代码处理单元)。本文只介绍较低级别的路由信息,有关MVC中的路由和Razor中的路由参考:https://docs.microsoft.com/zh-cn/aspnet/c.原创 2021-04-20 17:44:52 · 1924 阅读 · 0 评论 -
ASP.NET Core 基础(八)——日志记录
日志组件包括提供器(Provider)和记录器(Logger)# 1.日志提供程序(Log provider)框架自带的日志provider有以下几种,前4个都在`CreateDefaultBuilder`里被添加进去,后续几个需要添加nuget包。- 控制台:即`Consol.WriteLine()`- 调试:即`Debug.WriteLine()`- EventSource:EventSource 提供程序写入名称为 Microsoft-Extensions-Logging 的跨平台事件源。原创 2021-04-20 16:55:17 · 1322 阅读 · 0 评论 -
ASP.NET Core基础(七)——配置Development、Staging、Production环境
执行环境:Development、Staging、Production是asp.net core中的高级概念。什么都不设置的话,默认为Production。通过设置ASPNETCORE_ENVIRONMENT或DOTNET_ENVIRONMENT环境变量的值来指定应用的运行环境。这个值你可以随便输入,后续可通过env.EnvironmentName来获取,当你设置为“Development”时,env.IsDevelopment()则为true。env.IsDevelopment()等价于env.IsEn原创 2021-04-20 16:19:53 · 2222 阅读 · 0 评论 -
ASP.NET Core基础(六)——appsettings.json配置项
此文是在官方文档的基础上做的个人笔记,一些简单的内容就没用再列出来了,参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/configuration/?view=aspnetcore-5.0配置是使用一个或多个配置提供程序进行配置的。这个程序从如下的配置源中读取键值对,键不区分大小写:配置文件,如appsettings.json,MySettings.json等(见读取自定义配置文件章节)环境变量Azure Key .原创 2021-04-20 16:16:06 · 7068 阅读 · 0 评论 -
ASP.NET Core基础(五)——Web服务器
此文是在官方文档的基础上做的个人笔记,一些简单的内容就没用再列出来了,参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/servers/?view=aspnetcore-5.0&tabs=windowsasp.net core 中的web服务器有三种:Kestrel、HTTP.sys、IIS HTTP。Kestrel:是默认的跨平台服务器,提供了最佳的性能和内存利用率。但是没有HTTP.sys中的一些高级功能,.原创 2021-04-20 11:32:31 · 1620 阅读 · 0 评论 -
ASP.NET Core基础(四)——IHostBuilder
此文是在官方文档的基础上做的个人笔记,一些简单的内容就没用再列出来了,参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/host/generic-host?view=aspnetcore-5.0主机封装了应用的所有资源,例如:HTTP服务器实现(Kestrel)、中间件、Logging、DI、Configuration等。主机分为两种:.Net 通用主机IHostBuilder:(推荐使用)。Program.cs的C.原创 2021-04-20 11:27:58 · 3360 阅读 · 0 评论 -
ASP.NET Core 基础(三)——中间件
此文是在官方文档的基础上做的个人笔记,一些简单的内容就没用再列出来了,参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/middleware/?view=aspnetcore-5.0中间件是一种装配到应用管道以处理请求和响应的组件,可以选择是否将请求传递到管道中的下一个组件而且也可以在管道的下一个组件前后执行工作。使用app.Run、app.Map、app.Use方法来配置请求委托。请求管道中的每个中间件负责调用管道中的.原创 2021-04-20 11:18:46 · 829 阅读 · 0 评论 -
ASP.NET Core 基础(二)——使用依赖注入
此文是在官方文档的基础上做的个人笔记,一些简单的内容就没用再列出来了,参考官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/dependency-injection?view=aspnetcore-5.0框架自带的一些符合Add{GROUP_NAME}约定的服务,如:AddControllers、AddDbContext、AddDefaultIdentity等,会自动注册该框架功能所需的所有服务。1.服务生存周期Tran.原创 2021-04-20 10:59:32 · 1757 阅读 · 0 评论 -
ASP.NET Core 基础(一)——Startup
Startup类作用:用来配置服务和请求管道。服务是一种提供应用功能的可重用组件,在ConfigureServices中注册服务,然后通过DI或ApplicationServices.GetRequriedService<T>()在整个应用中使用服务。 在Program.cs中构建主机(IHost)时指定了Startup类,并且框架会自动注册一些服务(具体有哪些见后续依赖注入章节),所以以下服务类型可以直接注入到Startup的构造函数:IWebHostEnvironment/IHos原创 2021-04-20 10:39:46 · 1333 阅读 · 0 评论 -
【ASP.NET Core】在Controller的构造函数中设置ViewBag无效,NullReferenceException: Object reference not set to an in
在Controller的构造函数中设置ViewBag无效,NullReferenceException: Object reference not set to an instance原创 2019-08-19 12:04:34 · 2494 阅读 · 0 评论 -
System.InvalidOperationException:“操作失败: 无法更改关系,因为一个或多个外键属性不可以为 null。对关系作出更改后,会将相关的外键属性设置为 null 值。如果外
前言今天用EF做更新操作时,抛出了System.InvalidOperationException:“操作失败: 无法更改关系,因为一个或多个外键属性不可以为 null。对关系作出更改后,会将相关的外键属性设置为 null 值。如果外键不支持 null 值,则必须定义新的关系,必须向外键属性分配另一个非 null 值,或必须删除无关的对象。”的异常。经过调试之后发现了问题所在。报错代码: ...原创 2019-06-26 15:19:04 · 7811 阅读 · 0 评论 -
【ASP.NET】使用MiniProfiler分析ASP.NET MVC和EF的性能
简介MiniProfiler是一个简单且高效的小型分析器,可用于.NET,Ruby,Go和Node.js.MiniProfiler不是将自己附加到每一个方法上,因为这样会有强侵入性而且也不是专注于分析性能问题。它是一个ADO.NET的分析器,可以分析对于ADO.NET(SQL Server、Oracle等)、LINQ-to-SQL、EF(Code First&EF Core)的原始...原创 2019-06-19 17:23:14 · 1697 阅读 · 0 评论 -
【ASP.NET】 MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction区别
对这四个的区别做一个总结,清理一下思路,方便以后使用:1、带有Render的方法 返回值是void,在方法内部进行输出 ;不带的返回值类型为 MvcHtmlString ,所以只能这样使用: @Html.Partial 对应 @{Html.RenderPartial(....);} @Html.Action 对应 @{Html.RenderAction(....);转载 2017-01-27 17:02:13 · 1570 阅读 · 0 评论 -
【ASP.NET】解除asp.net或者webservice限制上传文件大小和时间的限制
在邮件发送系统或者其他一些传送文件的网站中,用户传送文件的大小是有限制的,因为这样不但可以节省服务器的空间,还可以提高传送文件的速度。下面介绍如何在Web.Config文件中配置限制上传文件大小与时间。 在Web.Config文件中配置限制上传文件大小与时间字符串时,是在httpRuntime节中完成的,需要设置以下2个属性:maxRequestLength属性与E...原创 2015-09-11 16:24:16 · 4500 阅读 · 0 评论