ASP.NET Core怎么管理应用程序状态


这篇文章主要介绍了ASP.NETCore怎么管理应用程序状态的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇ASP.NETCore怎么管理应用程序状态文章都会有所收获,下面我们一起来看看吧。在免费云主机域名ASP.NET Core中,由多种途径可以对应用程序状态进行管理,使用哪种途径,由检索状态的时机和方式决定。应用程序状态指的是用于描述当前状况的任意数据。包括全局和用户特有的数据。开发人员可以根据不同的因素来选择不同的方式存储状态数据:数据需要存储多久数据有多大数据的格式是什么数据是否可以序列化数据有多敏感数据能否保存在客户端当数据仅用于一个请求中时,用Items集合存储时最好的方式。数据将在每个请求结束之后丢弃。它是组件和中间件在一个请求中的不同时间点金总互相通信的最佳手段。HttpContext抽象提供了一个简单的IDictionary类型的字典集合,就是Items。在每个请求中,这个集合从HttpRequest开始就可以使用,直到请求结束丢弃。要想存取集合,可以直接赋值和根据键查询。在查询字符串(QueryString)中添加值,或利用Post发送数据,可以将一个请求的状态数据提供给另一个请求。这不适合敏感数据,因为这需要将数据发送到客户端,然后再发送给服务器。这种方法也只适用于少量数据。用户提交的数据是无法预期的,带查询字符串的网址很容易泄露,所以要避免跨网站请求伪装攻击(CSRF)。与状态有关的小量数据可以存储在Cookies中。他们会随每次请求被发送到客户端。应该只使用一个标识符,真正的数据存储在服务端,服务端的数据与这个标识关联。会话存储依靠一个基于Cookie的标识符来访问与给定浏览器相关的会话数据。一个会话可以与多个Cookie关联。缓存提供了一种方法,用自定义的键对应用程序数据进行存储和检索。它提供了一套基于时间和其他因素使缓存过期的规则。还可以使用EF和数据库等进行存储应用程序状态。首先要安装Microsoft.AspNetCore.Session安装包。然后在Startup类中配置。Session是基于IDistributedCache构建的,因此必须先配置好Session,否则会报错。ASP.NET 提供了IDistributedCache的多种实现,in-memory是其中之一。上面采用in-memory,需要先安装Microsoft.Extensions.Caching.Memory,然后添加上面代码。最后在Configure中调用app.UseSession(),需要在app.UseMvc使用之前调用。Session利用一个cookie来跟踪和区分不同浏览器发出的请求。默认情况下,这个cookie被命名为“.ASP.Session”,并使用路径“/”。默认情况下,这个cookie不指定域,而且对于页面的客户端脚本是不可使用的,因为CookieHttpOnly默认为True。其他的值可以通过SessionOptions配置:   IdleTimeout 在服务端决定过期时间,session的过期时间是独立于cookie的。安装和配置好session之后,就可以通过HttpContext的一个名为Session,类型为ISession的属性来引用会话。因为Session是建立在IDistributedCache之上的,所以总是需要序列化被存储的对象实例。因此,这个接口是使用byte[]而不是直接使用object。string 和 int32 的简单类型可以直接使用:存储对象需要先把对象序列化为一个byte[]字节流。需要使用MemoryStream和BinaryFormatter关于“ASP.NETCore怎么管理应用程序状态”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“ASP.NETCore怎么管理应用程序状态”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注百云主机行业资讯频道。

相关推荐: Flutter怎么读写文本文件

这篇文章主要介绍“Flutter怎么读写文本文件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Flutter怎么读写文本文件”文章能帮助大家解决问题。文本文件(具有 .txt扩展名)广泛用于持久存储信息,从数字数据到长…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 04/16 22:21
Next 04/16 22:21

相关推荐