由一个业务需求引发的对 ASP.NET 全局变量的调研及结果

简介: 由一个业务需求引发的对 ASP.NET 全局变量的调研及结果

前言

前段时间使用 ASP.NET MVC + Form Auth 做了一个单机小项目,当时对于采用什么方式来存储登录状态有些纠结,通常的做法是使用 Cookie 或者 Session,但是我对这两种方式都不是十分满意,于是花了点时间调研了 ASP.NET 的全局变量使用方式,希望能找到更好的方式来存储登录状态。

以下是本次调研过程及总结。

调研过程及总结

Application

测试过程:

  1. LoginController 在 Chrome 浏览器写入 Application[“Test”] 的值
  2. 在 Edge 浏览器打开,Application[“Test”] 的值依然存在

总结

Application 是全局性的,不太适合存储登录状态

Session

测试过程:

  1. LoginController 在 Chrome 浏览器写入 Session[“Test”] 的值
  2. 重新刷新 Chrome 浏览器页面,值存在
  3. 在 Edge 浏览器打开,Session[“Test”] 的值不存在

结论

Session 适合存储登录状态,其值存储在服务器端,重启 IIS 或者到时间(默认是20分钟)等方式都会使其丢失

Cookie

测试过程:

  1. LoginController 在 Chrome 浏览器写入 HttpCookie [“Test”] 的值
  2. 重新刷新 Chrome 浏览器,值存在
  3. 在 Edge 浏览器 打开,cookie 不存在

结论

Cookie 适合存储登录状态,其值存储在客户端,不能存储太多信息,安全性没有 Session 好

静态变量

测试过程:

  1. LoginController 在 Chrome 浏览器写入静态变量 GlobalTest.MyLogin 的值
  2. 在 Edge 浏览器打开,GlobalTest.MyLogin 的值依然存在

结论

静态变量是全局性的,不太适合存储登录状态

后记

权衡之下,最终还是选择使用 Session,在单机模式下,Session 相对比较安全可靠。当然还可以把登录状态持久化到本地文件或者数据库中,不过这又是另外一回事了,维护起来也相对比较麻烦。


相关文章
|
.NET 数据库 开发框架
ASP.Net全局变量的设置和读取方法
本文介绍两种ASP.Net项目中全局变量使用的方式。web.config文件 和 Gloab文件。以下分别说明:方法一:web.config文件——设置:在web.config文件里添加关键字key是通过标记来实现的,但是appSettings标记通常放在.....标记外面。
1041 0
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
480 0
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
257 7
|
存储 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(五)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情等功能的开发,今天继续讲解购物车功能开发,仅供学习分享使用,如有不足之处,还请指正。
385 0
|
开发框架 前端开发 .NET
[回馈]ASP.NET Core MVC开发实战之商城系统(一)
[回馈]ASP.NET Core MVC开发实战之商城系统(一)
494 0
|
SQL 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(开篇)
[回馈]ASP.NET Core MVC开发实战之商城系统(开篇)
462 0
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
297 0
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
240 0