我重構了我構建的CMS。 CMS能夠根據所選語言環境編輯頁面。我將這個選定的區域設置保留在會話中,而CMS的用戶瀏覽他們想要編輯的頁面。保持會話中的語言環境或與表單一起發送?
現在,我的問題是:
如果用戶正在編輯一個頁面,並要提交更改,你覺得我應該包括區域作爲形式的隱藏字段將被提交?只是爲了安全起見?或者我應該只依賴會話中的區域設置?
我重構了我構建的CMS。 CMS能夠根據所選語言環境編輯頁面。我將這個選定的區域設置保留在會話中,而CMS的用戶瀏覽他們想要編輯的頁面。保持會話中的語言環境或與表單一起發送?
現在,我的問題是:
如果用戶正在編輯一個頁面,並要提交更改,你覺得我應該包括區域作爲形式的隱藏字段將被提交?只是爲了安全起見?或者我應該只依賴會話中的區域設置?
是的,你絕對應該張貼沿着每一次,因爲在編輯頁面的用戶可能已經改變了語言環境。結果將會是頁面被來自不同語言環境的內容覆蓋。
如果用戶不允許編輯其語言環境之外的頁面,則必須另外檢查用戶是否被允許編輯指定的頁面/區域設置組合(因爲它們可能在通過會話時將其僞造)。
這取決於你想要什麼後退按鈕的行爲是。
如果用戶訪問了幾頁,然後選擇一個不同的區域設置,然後回來,希望更改區域設置爲撤消後退按鈕?
(如果您希望書籤標記頁(最喜歡)記住語言環境,那麼您必須將其存儲在URL中,通常作爲查詢字符串。)
如果您不希望用戶切換區域設置,如Pekka所示,您可以從請求中確定區域設置。瀏覽器會在每次請求時向您發送該信息。
我會請求在會話中的值進行比較的價值和觀賞更改。你用什麼邏輯來處理變化取決於你,而且靈活。
我不知道你所選擇的語言,但在ASP.NET中,你可以從HttpRequest.UserLanguages性質的語言。