代码之家  ›  专栏  ›  技术社区  ›  Decent Dabbler

在会话中保留区域设置还是与表单一起发送?

  •  0
  • Decent Dabbler  · 技术社区  · 15 年前

    我正在重构我构建的CMS。CMS能够根据所选区域设置编辑页面。当CMS的用户浏览他们想要编辑的页面时,我会在会话中保留所选的区域设置。

    现在,我的问题是:
    如果用户正在编辑页面并希望提交更改,您认为我应该在要提交的表单中将区域设置包含为隐藏字段吗?只是为了安全起见?或者我应该只依赖会话中的区域设置吗?

    3 回复  |  直到 15 年前
        1
  •  2
  •   Pekka    15 年前

    是的,每次都应该绝对地发布它,因为用户在编辑页面时可能已经更改了区域设置。结果是页面会被来自不同区域设置的内容覆盖。

    如果不允许用户编辑其区域设置之外的页面,则必须另外检查是否允许用户编辑指定的页面/区域设置组合(因为当用户通过会话时,他们可能会伪造该组合)。

        2
  •  1
  •   Ian Ringrose    15 年前

    这取决于你想要的行为 后退按钮 成为。

    如果一个用户访问了几个页面,然后选择一个不同的区域设置,然后回击,希望更改区域设置为 通过后退按钮撤消 ?

    • 如果是,请将其存储在隐藏字段或查询字符串中
    • 否则,将其存储在cookie或由cookie索引的数据存储中(例如会话状态)

    (如果希望书籍标记页(最喜爱)记住区域设置,则必须将其存储在URL中,通常为查询字符串。)

        3
  •  0
  •   Josh    15 年前

    如果您不希望用户像pekka建议的那样切换区域设置,您可以根据请求确定区域设置。浏览器将在每次请求时向您发送该信息。

    我会将请求中的值与会话中的值进行比较,并观察更改。您用来处理变更的逻辑取决于您自己,并且是灵活的。

    我不确定您选择的语言,但是在ASP.NET中,您可以从 HttpRequest.UserLanguages 财产。