gpt4 book ai didi

asp.net - Controller SessionStateBehavior 是只读的,我可以更新 session 变量

转载 作者:行者123 更新时间:2023-12-03 01:16:30 24 4
gpt4 key购买 nike

我希望如果 Controller 具有属性 SessionStateBehavior.ReadOnly 那么我无法更改此 Controller 内的 session 变量但我可以改变值。

我尝试这个代码

 [SessionState(System.Web.SessionState.SessionStateBehavior.ReadOnly)]
public class GLobalController : Controller
{
public ActionResult Index()
{
Session["xxx"] = DateTime.Now.ToString();
return View();
}

最佳答案

参见Writing to a read only session in MVC 3+

该帖子声称该行为不一致。我绝对可以使用 ReadOnly 写入 Controller 中的 session 。

我会这样对待它:

  • 必需表示您正在请求 session 上的独占锁(即,不对同一 session ID 的请求进行并行处理)
  • ReadOnly 意味着您正在请求 Session 上的非独占锁(即您的请求仍然需要等待具有独占锁的请求完成,但您可以并行处理具有非独占锁的请求。但是您需要确保您的代码不会写入 session 。框架不一定强制执行)

    我意识到这与http://msdn.microsoft.com/en-us/library/system.web.sessionstate.sessionstatebehavior.aspx相反

    Read-only session state is enabled for the request. This means that session state cannot be updated.

    但似乎您实际上可以在某些情况下更新 session 状态。

  • 关于asp.net - Controller SessionStateBehavior 是只读的,我可以更新 session 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12263086/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com