私はWebFormsから来る相対MVCのnoobです。私はいくつかの例外を除いてMVCをかなりよく把握していると思います。パターンが壊れている可能性があります。私はこれを短くしようとしているので、私が求めていることの大部分は比較的明らかであると仮定しています。MVC2ルーティングとセキュリティ:パラメータを安全に渡す方法は?
私は記事があるニュースサイトを持っているとします。その場合、mynewssite.com/Articles/123の形式のURLは、どの記事を閲覧するか気にしないのでうまく機能します。ユーザーは、URL内のArticleIDを必要なものに変更して、その記事をプルアップできます。私の場合、私は、ユーザーがそれらに属しているデータエンティティ(記事など)を表示/編集できるようにしたいだけです。これを達成するために、私はUserID(GUID)をデータベース内の外部キーとして使用し、選択するためのデータのリストを表示しています。ここで問題が発生します... Url.Action( "Edit"、New with {.id = item.id})によって作成されたリンクをクリックしたとき(HTMLコンテンツを追加する必要があるためActionLinkを使用していませんリンク内で)、IDはクエリ文字列のパラメータとして表示されます。私はそれのためのルートを追加することができますが、IDはまだ彼らが改ざんするためにURLに表示されます。明白な意味は、URLを改ざんすることによって、彼らが望む任意のエンティティを表示/編集できることです。
私には何が欠けていますか? パラメータをURLに追加せずにパラメータを渡す方法はありますか?私はそれらをページ上のフォームに入れてフォームを提出できることを知っていますが、これは私の例では扱いにくいようですが、私はこのアイデアと矛盾する場所でjQuery.ajaxを使用しています。 Editメソッドのデータに対してUserIDをチェックすることもできますが、面倒なようです。
この質問は広すぎますか?何が必要なのか教えてください。ありがとう。
ご返信ありがとうございます。私はフォーム認証を使用しています。私はちょうど私がすべての要求でこのデータのための許可を持っているかどうかを確認する必要があると思うべきではないと思う。たぶん私はWebFormsに慣れているので、私はちょうど(FAで)フォルダを保護し、それを使ってやることができます。私の主な質問は、このタイプの状況でパラメータを渡すMVCベスト/標準的な方法は何ですか。私は正しい方法でMVCを使用していることを確認したい。 –