概述 上两篇(asp.net core 3.x 身份验证-1涉及到的概念.asp.net core 3.x 身份验证-2启动阶段的配置)介绍了身份验证相关概念以及启动阶段的配置,本篇以cookie身份验证为例来大致说明asp.net core中的身份验证原理.如果我们的应用只考虑浏览器使用,且不考虑前后端分离,cookie是最简单的身份验证方式.虽然这样命名,但我们的用户标识并非一定要存到cookie里,asp.net core允许我们存储到任何地方,如:session.自定义基于内存的存储.r…
前文索引:ASP.NET Core教程[一]关于Razor Page的知识 在layout.cshtml文件中,我们可以看到如下代码: <a asp-page="/Index" class="navbar-brand">RazorPagesMovie</a> 这段代码中用到asp-page这样的一个特有属性,这是razor page特有的, 这是一个锚点属性,它的值将被编译到a标签的href属性上: 跟多的时候,我们会像下面这样使用锚点属性…
注册服务.配置选项.添加身份验证方案 在Startup.ConfigureServices执行services.AddAuthentication() 注册如下服务(便于理解省略了部分辅助服务): services.TryAddScoped<IAuthenticationService, AuthenticationService>(); services.TryAddScoped<IAuthenticationHandlerProvider, AuthenticationHandler…
ASP.NET Core MVC的Model Binding会将HTTP Request数据,以映射的方式对应到参数中.基本上跟ASP.NET MVC差不多,但能Binding的来源更多了一些.本篇将介绍ASP.NET Core的Model Binding. Model Binding 要接收Client 传送来的数据,可以通过Action 的参数接收,如下: using Microsoft.AspNetCore.Mvc; namespace MyWebsite.Controllers { pu…
ASP.NET Core Data Protection 不仅提供了非对称加密能力,而且提供了灵活的秘钥存储方式以及一致的加解密接口(Protect与Unprotect).Session中用到了它,Cookie验证中用到了它,OpenIdConnect中也用到了它...当然你也可以在应用开发中使用它,比如这篇博文中就是用它生成激活帐户的验证token. 首先在 Startup.ConfigureServices() 中注册 DataProtection 服务(注入 IDataProtection…
前言 从本篇开始将围绕asp.net core身份验证写个小系列,希望你看完本系列后,脑子里对asp.net core的身份验证原理有个大致印象.至于身份验证是啥?与授权有啥联系?就不介绍了,太啰嗦.你如果不晓得,自己去搜搜吧.我的学习思路是详细看源码 > 总结得出一个宏观上的印象 + 如何使用.如果发现有啥讲错的望指正,免得误导观众 我们偶尔会思考如何设计一个牛X的软件,其实通过对asp.net core框架本身的学习更划算,一来我们熟悉了asp.net core框架,再者我们学习了微软碰到需…
摘要 ASP.NET Core2.0发布有一阵子了,这是.NET 开源跨平台的一个重大里程碑, 也意味着比1.0版本要更加成熟.目前.net core具有开源.跨平台.灵活部署.模块化架构等等特性,吸引着一大批开发者.笔者也开始加入拥抱.net core大军,那就搭建一个个人网站吧! 首先申明的是,这应该是一个长期的项目,我会不定期的更新,持续集成,慢慢的把想要的新功能叠加到网站上.这也是积累的过程,我希望通过文章分享给博友们,也欢迎你们关注我,与我一同讨论,共同进步! 话不多说,咱们开始~ 部…
作为<ASP.NET Core 3框架揭秘>的升级版,<ASP.NET Core 6框架揭秘>提供了很多新的章节,同时对现有的内容进行大量的修改.虽然本书旨在对ASP.NET Core框架的架构设计和实现原理进行剖析,但是其中提供的258个实例演示却可以作为入门材料,这个系列会将这些演示实例单独提取出来并进行汇总.对于想学习ASP.NET Core的同学,如果你觉得本书过于深入,读起来稍显吃力,可以看看.如果你对<ASP.NET Core 6框架揭秘>有兴趣,可以加入本…
HTTP状态码 HTTP状态码会告诉API的消费者以下事情: 请求是否执行成功了 如果请求失败了,那么谁为它负责 HTTP的状态码有很多,但是Web API不一定需要支持所有的状态码.HTTP状态码一共分为5个级别: 1xx,属于信息性的状态码.Web API并不使用1xx的状态码. 2xx,意味着请求执行的很成功. 200 - Ok,表示请求成功: 201 - Created,请求成功并创建了资源: 204 - No Content,请求成功,但是不应该返回任何东西,例如删除操作. 3xx,用…
配置文件读取 1. 新建FirstController控制器 在appsettings文件内容替换成以下代码 { "Position": { "Title": "EditTool For human", "Name": "Joe Smith" },//json对象 "MyKey": "My appsettings.json Value", "StudentL…