ASP.NET大师:使用会话变量有哪些优点/缺点?

我已经对这个问题进行了搜索,并且一遍又一遍地发现了相同的数据 – 对三种不同类型的会话的审查。 (InProc,sql,StateServer)但是,我的问题是不同的。

具体来说,首先使用内置.NET会话的优点和缺点是什么?

这就是为什么我问:一个.NET开发人员告诉我,不要使用内置的Microsoft Session。一点也不。甚至不创建一个自定义会话状态提供程序。他的理由是这样的 – 如果您在IIS中打开了会话,它会使您的所有请求同步发生。他说启用会话降低了Web服务器的性能

他的解决方案是自己创建一个会话 – 一个类,用于存储所有需要的值,并将其序列化到数据库中。他建议您存储唯一的ID以将其引用到cookie或querystring变量中。在我们的环境中,使用数据库来存储会话是一个要求,因为我们所有的页面都是在网络场上,而我们使用Oracle–所以我同意这一点。

使用内置的Session会降低性能,而不是自制会话?这有什么安全问题吗?

所以总结一下,有哪些优点/缺点?

感谢所有的人回答!

解决方法

首先,浏览器只会在给定的时间向给定的主机名发出两个请求。在大多数情况下,这些请求用于静态内容(JS文件,CSS等)。所以,对动态内容的请求的序列化并不是人们想到的问题。另外,我认为这可能会与经典的ASP混淆,使用Session的页面是绝对序列化的,我不认为这是ASP.Net的情况。

使用ASP.Net会话状态(sql模式,状态服务器或自定义),您具有标准的实现,并且在整个应用程序中都是一致的。如果你不需要共享会话信息,这是你最好的选择。如果您需要与其他应用程序环境(PHP,swing / java,classic asp等)共享信息,可能值得考虑。

一个优势/缺点是,开发人员很多关注性能方面的内置方法,即使使用不同的提供商也可以设计自己的滚动。

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....