私はASP.Net Application
のシンプルなWebForms
を持っています。データベース内のレコードを挿入および更新するために使用されるいくつかのページがあります。フォームに入力値を送信しないようにするにはどうすればいいですか?
ただし、一部の入力制御値を更新しないでください。だから、ユーザが値を更新しないようにdisabled
属性を設定しました。しかし、ユーザーは開発者ツールから有効にして値を直接変更することもできます。
私はjavascript
を使用して要素からname
属性を削除すると、そのコントロールの値は形で提出されず、それがサーバ側に影響されることはありません(それは完璧に動作します)。しかし、ユーザーがname
属性に同じvaule(、つまり'ctl00$ContentPlaceHolder2$txtBranchCode'
)を再割り当てすると、入力ボックスの値はに再送信されます。
コード:私は、私の問題は簡単に解決することができる形式で提出する要素の値を防ぐことができるかどう
<td align="left">
<input name="ctl00$ContentPlaceHolder2$txtBranchCode" type="text" value="HO"
id="ctl00_ContentPlaceHolder2_txtBranchCode">
</td>
さて、私が欲しいものです。私はすべてのページに条件を追加することができません"コントロールが無効になっている場合は更新しないでください。"ページがたくさんあり、それぞれのページで同じ作業をしなければなりません。共通の解決策がある場合は、それが良いでしょう。
これを行うための唯一の安全かつ安全な方法は、サーバー上にあることです。その値を使用するかどうかをチェックし、そうでない場合は無視しなければなりません。あなたがすでに述べたように、クライアント上で行われたことはすべて変更することができます。 – webnoob
はい@webnoob私はサーバー側のバリデーションが優れていることを知っていますが、私はすべてのページを変更することはできません。だから、私は共通の解決策を見つけようとしています。 aspフォームの登録を解除することができれば、Asp Formはそのコントロールの値をポストしません。 – Shell
唯一の安全な方法です。アーキテクチャに関するこの問題に直面している場合は、将来、再びその問題に直面する可能性があります。なぜ同じロジックが多くの場所で行われなければならないのですか?この検証を行うことができる基本クラス/サービスにいくつかの機能を凝縮できませんか?私はそれが導入するための多くの仕事を意味するかもしれないが理解しますが、それはこれがどれほどの要件であるかによって異なります。 – webnoob