解读asp NET 5 MVC6系列 Routing路由

在之前的版本中,存在于中,新预报一页通版中由于不在依赖于库了,所以相应的,也就成了中一个可配置的模块()了。

配置启用

中的Session模块存在于Microsoft.AspNet.Session类库中,要启用Session,首先需要在project.json中的dependencies节点中添加如下内容:

"Microsoft.AspNet.Session":"1.0.0-beta3"

然后在ConfigureServices中添加Session的引用(并进行配置):

services.AddCaching();//这两个必须同时添加,因为Session依赖于Cachingservices.AddSession();//services.ConfigureSession(null);可以在这里配置,也可以再后面进行配置

最后在Configure方法中,开启使用Session的模式,如果在上面已经配置过了,则可以不再传入配置信息,否则还是要像上面的配置信息一样,传入Session的配置信息,代码如下:

app.UseInMemorySession(configure:s={s.IdleTimeout=TimeSpan.FromMinutes(30);});//app.UseSession(o={o.IdleTimeout=TimeSpan.FromSeconds(30);});//app.UseInMemorySession(null,null);//开启内存Session//app.UseDistributedSession(null,null);//开启分布式Session,也即持久化Session//app.UseDistributedSession(newRedisCache(newRedisCacheOptions(){Configuration="localhost"}));

对于UseInMemorySession方法,接收2个可选参数,分别是:IMemoryCache可用于修改Session数据的默认保存地址;ActionSessionOptions委托则可以让你修改默认选项,比如Sessioncookie的路径、默认的过期时间等。本例中,我们修改默认过期时间为30分钟。

注意:该方法必须在app.UseMvc之前调用,否则在Mvc里获取不到Session,而且会出错。

获取和设置Session

获取和设置Session对象,一般是在Controller的action里通过this.Context.Session来获取的,其获取的是一个基于接口ISessionCollection的实例。该接口可以通过索引、Set、TryGetValue等方法进行Session值的获取和设置,但我们发现在获取和设置Session的时候,我们只能使用byte[]类型,而不能像之前版本的Session一样可以设置任意类型的数据。原因是因为,新版本的Session要支持在远程服务器上存储,就需要支持序列化,所以才强制要求保存为byte[]类型。所以我们在保存Session的时候,需要将其转换为byte[]才能进行保存,并且获取以后要再次将byte[]转换为自己的原有的类型才行。这种形式太麻烦了,好在微软在Microsoft.AspNet.Http命名空间(所属Microsoft.AspNet.Http.Extensions.dll中)下,为我们添加了几个扩展方法,分别用于设置和保存byte[]类型、int类型、以及

本文地址:http://www.51eduedu.com/Biancheng/20191217/33784.html转载请注明出处!

相关文章:

[编程]解析微信支付的实现方法(.NET版)破天贵族双开

[编程]mysql创建本地用户及赋予数据库权限的方法示例剑

[编程]MySQL-Python安装问题小记安捷儿飞天使

[编程]Windows下mysql5.7.21安装详细教程国产航母已涂完白

[编程]读取mysql一个库下面的所有的表table迷失特种兵

[编程]Mysql占用过高CPU时的优化手段(必看)abcabcabcheliu

[编程]MySQL添加、修改、删除表的列及约束等表的定义

专题推荐:神雕ol怎么赚钱(15)兄弟干杯吉他谱清远haobc.vip羊角乳

社会

解读asp NET 5 MVC6系列 Routing路由


猜你喜欢