3

すべてのユーザーが編集できる投稿のリストがあります。
非表示フィールドで投稿の編集モードに入ると、 を保存しPostIdます。
ユーザーがその非表示フィールドを変更して他の投稿を更新できるため、これは実際には悪いことがわかりました。ユーザーが編集した投稿を保持する唯一の代替手段

はありますか、それともより良い戦術がありますか? 私は本当に悪いので:(sessionid

4

3 に答える 3

5

より良い戦術があります:

レコードを更新する前に、ユーザーが更新しようとしているレコードが現在認証されているユーザーに属しているかどうかを確認してください。

このタスクを実行するカスタム承認属性を作成できます。ここにありan exampleます。

于 2012-12-16T13:32:30.977 に答える
0

それをaspHiddenフィールドに保持し、Visibleプロパティをfalseに設定します。これにより、レンダリングされたhtmlタグでも、ページ上でコントロールを非表示にする値にアクセスできるようになります

于 2012-12-16T13:59:49.623 に答える
0

投稿 ID を追加のフィールドではなく非表示にするようにしてください。次に、コントローラーで、その ID を使用してデータベースから元の投稿を取得します。

次に、次を確認する必要があります。

  • ID が実際にデータベースから何かを取得する場合 (投稿が既に削除されている場合、またはユーザーが非表示の ID を変更した場合)。
  • 編集する投稿がそのユーザー/テナントからのものである場合 (それがそのユーザーからのものであり、彼があなたの非表示の ID を自分の他の投稿に変更した場合、それは彼の責任です)。
  • ロジックに必要なその他のチェックを追加します (ユーザーがそれを行う権限を持っているかどうかを確認するか、日付を確認するなど)。
  • データベースから投稿オブジェクトで編集を許可するフィールドを更新して保存することができます (モデル自体PostViewModelではなく、アクションで を受け取っていると仮定します。Post

このアプローチは DELETE の場合にも使用でき、ID を指定してそのアイテムを削除してもよいかどうかを確認します。

于 2012-12-16T13:42:49.943 に答える