0

我正在重构我构建的 CMS。CMS 能够根据所选的语言环境编辑页面。当 CMS 的用户浏览他们喜欢编辑的页面时,我将这个选定的语言环境保留在会话中。

现在,我的问题是:
如果用户正在编辑页面并想要提交更改,您是否认为我应该将语言环境作为隐藏字段包含在要提交的表单中?只是为了安全起见?还是我应该只依赖会话中存在的语言环境?

4

3 回答 3

2

是的,您绝对应该每次都发布它,因为用户可能在编辑页面时更改了语言环境。结果将是页面被来自不同语言环境的内容覆盖。

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

于 2010-02-02T21:14:52.513 回答
1

这取决于您希望后退按钮的行为是什么。

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

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

(如果您希望书签页面(收藏夹)记住语言环境,那么您必须将其存储在 URL 中,通常作为查询字符串。)

于 2010-02-02T23:02:32.497 回答
0

如果您不希望用户像 Pekka 建议的那样切换语言环境,您可以从请求中确定语言环境。浏览器会在每次请求时将该信息发送给您。

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

我不确定您选择的语言,但在 ASP.NET 中,您可以从HttpRequest.UserLanguages属性中获取语言。

于 2010-02-08T19:10:57.347 回答