我希望如果控制器具有属性SessionStateBehavior.ReadOnly,那么我不能更改此控制器内的会话变量 但我可以改变价值观.

我试试这个密码

 [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在控制器中写入会话.

我会这样对待它:

  • Required表示您正在请求会话的独占锁定(即不并行处理相同sessionID的请求)
  • ReadOnly means you are requesting a non-exclusive lock on Session (i.e. your request still has to wait for requests with an exclusive lock to finish, but you can process requests with non-exclusive locks in parallel. However it is up to you to ensure that your code doesn't write to Session. It's not necessarily enforced by the framework)

    我意识到这与http://msdn.microsoft.com/en-us/library/system.web.sessionstate.sessionstatebehavior.aspx背道而驰

    已为请求启用只读会话状态.这意味着无法更新会话状态.

    但似乎在某些情况下,您实际上可以更新会话状态.

  • Asp.net相关问答推荐

    如何在 ASP.NET 全球化中配置不变文化?

    某些黑客能否从用户那里窃取 Web 浏览器 cookie 并在网站上使用该名称登录?

    在 DataTextField 中组合两个字段.这可能吗?

    使用 jQuery.ajax() 时如何处理错误?

    如何使用三个按钮是否和取消显示确认alert ,如 MS Word 中所示

    在 cookie 中存储多个值

    你如何确定哪个验证器失败了?

    aspx 文件中的 if 语句

    如何使用 asp.net 获取 html Select 的选定值

    页面在谷歌浏览器中加载两次

    IIS 10 上的 ASP.NET Core 404 错误

    在 ASP.NET 中使用 Messenger Connect 客户端库时出现 Javascript 错误

    如何防止 XXE 攻击(.NET 中的 XmlDocument)

    VS2017 无法加载文件或程序集 Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 或其依赖项之一

    如何在 ASP.Net MVC 3 中返回 HttpNotFound() 的视图?

    elmah:没有 HttpContext 的异常?

    IIS 是否执行非法字符替换?如果是这样,如何阻止它?

    如何解决我的 ASP.Net MVC 应用程序中的 iisreset 后发生的 AntiForgeryToken 异常?

    Page.IsPostBack 和 Page.IsCallBack 有什么区别?

    如何使用实体框架执行原始 SQL 查询而无需使用模型?