鉴于在ASP.NET MVC中不建议使用会话状态。我试图了解在什么情况下使用会话。我知道使用TempData会创建一个会话,但是还有什么其他情况,以及如何配置会话状态超时以提高安全性又有关系吗?
<sessionState cookieName="s" timeout="20" />
您引用的已接受答案部分说明
这往往导致会话的过度使用,在会话中填充“当前”变量以指示当前正在与之交互的对象。这种过度使用反过来使应用程序非常依赖状态,并且很难确定预期的行为(“是否填充了此变量?”“我是否具有当前的订单ID?”)。
MVC的构架是基于您的网站是信息逻辑模型的视图。它鼓励通过使用简单的控制器来进行无状态操作,该控制器使用作为HTTP请求的一部分传递的关键信息来响应动作。
当您的网站出于安全性或个性化目的需要将某些内容绑定到特定用户时,会话并不是一件坏事。为此目的使用会话是正常的,预期的和正常的。
您应该避免做的是在会话中填充Web应用程序中任何地方可能需要的所有信息。花一些时间来学习和理解MVC架构,并且喜欢在实际呈现该页面时加载呈现给定页面所需的数据。仅缓存加载相对昂贵或在许多/所有页面上需要的内容。
如何配置会话状态超时以提高安全性有关系吗?
与会话超时时间有关的主要问题是会话劫持攻击,它允许中间的人拦截会话信息并在黑客的控制下从其他设备控制会话。对于大多数应用程序,默认会话超时没有任何问题。
另一个问题是人们会离开他们的设备,使其无人看管。这样做的人所担心的不仅仅是您的网站。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句