私は:@ Html.HiddenForを使用してフォーム上のフィールドを隠すことができますが、 "表示ソース"を使用して隠しフィールドの値を引き続き見ることができます。mvc3 .net - ビューの隠しフィールドを完全に隠す方法はありますか?
MVC3でビューソースの非表示フィールドを非表示にする方法はありますか?ユーザーからプライマリキーを完全に隠したいが、モデルを介してビューからコントローラに渡す。形。
例へのコードスニペットまたはリンクは参考になります。 ありがとう
私は:@ Html.HiddenForを使用してフォーム上のフィールドを隠すことができますが、 "表示ソース"を使用して隠しフィールドの値を引き続き見ることができます。mvc3 .net - ビューの隠しフィールドを完全に隠す方法はありますか?
MVC3でビューソースの非表示フィールドを非表示にする方法はありますか?ユーザーからプライマリキーを完全に隠したいが、モデルを介してビューからコントローラに渡す。形。
例へのコードスニペットまたはリンクは参考になります。 ありがとう
まあ、単純ないいえ。フォームを介してキーを送信する場合は、ソースからデータを非表示にする方法はありません。
投稿する主キーやどのような種類のフォームデータについて言及していないので、他の提案はありません。それがユーザーの主キーであれば、もちろんフォームからキーを送信する代わりにログインセッションを使用できますが、それ以外の場合はソースから主キーを明らかにする必要があります。
ソースからフィールドを非表示にすることはできません。
しかし、特定の状況では、IDをビューに渡さないなど、何か他の操作を試みることができます。コントローラー側に保管し、フォーム送信時に使用してください。もちろん、あなたはそれに注意する必要がありますが、それはTempDataまたはViewDataで実行可能です。ヒントがありますhttp://haacked.com/archive/2007/12/21/asp.net-mvc-helpers-for-repopulating-a-form.aspx
複数のリクエストにまたがって情報を保持する必要がある場合は、サーバー側でTempDataコレクションを利用します。これは、セッションによってバックアップされますが、情報を短期間保持するように設計されています。あるいは、高さがゼロの隠れた、または他のhtmlでクライアントにデータをプッシュしなければならない場合は、対称暗号化または少なくともbase64エンコーディングを使用して暗号化する必要があります。
フィードバックチャップに感謝します。 私はあなたがこれを行うことができないかもしれないと思った。フォームのユーザーがソースの主キーuserIdを参照できる場合、これはセキュリティの問題ではありませんか? – user1079925
私は、特定のレコードの識別子を明らかにするのは普通だと言いますが、それはまた、あなたが作業しているデータの種類にも依存します。それは、ユーザーが購入したい本のBookIdだと言えば、そのIDを彼から隠す理由はありません。もしそれがもっと敏感なのであれば、あなたのIDをSHA1ハッシュでマスクし、レコード所有権/許可コントロールを追加することができます。 – torm
@tormに感謝します。私はそこにuserIdを保持して、 IDのセッション。 – user1079925