AddSession为IServiceCollection的扩展方法,有1个重载(传入Session的设置,使用services.Configure(configure),加载设置);
services.AddDataProtection()注入数据加密解密DataProtection(),在加密解密SessionKey时使用;
services.AddTransient
IApplicationBuilder UseSession( (app ==
app.UseMiddleware
IApplicationBuilder UseSession( (app == (options ==
app.UseMiddleware }
UseSession为IApplicationBuilder的扩展方法,也有1个重载,同样也是加载Session的设置,使用Options.Create(options)结合中间件加载设置;
SessionMiddleware.cs为Session的中间件;其中包含Session的核心代码,操作MVC之前和之后的代码都在中间件中;
在SessionMiddleware中一个异步方法Invoke;主要逻辑中包含了注释,应该很好理解;
在SessionMiddleware Invoke方法中,可以看到创建Session最终执行的是new DistributedSession();
此类就不做过多的介绍了,主要就是对IDictionary
1、在asp.net core中Session的代码还是比较简单的,运用操作也比较简单;
2、可以清楚的理解asp.net core中Session的原理;
4、可以学习在中间件中怎么运用设置(Options.Create(options)、services.Configure(configure));
5、知道了中间件的简单运用;
6、学写了Httpcontext Features 的简单运用,关于 HttpContext可以直接使用Session(HttpContext.Session)在讲asp.net core http时会详细介绍;
8、下一篇将分析 .net core configuration,敬请关注;
9、记得推荐评论,或者可以留言希望分析哪部分asp.net core的源码