1

ユーザーがブラウザーに URL を入力してビューに移動するのを避けたい状況で立ち往生していますが、アクションがそのビューに移動するボタンをクリックすると、そのビューに移動できます。

例: ActionResult(Create)への href リンクがあります。そのリンクをクリックしたときにユーザーがこのビュー(Create)に移動するようにしますが、 (/Create)のようにブラウザーに URL を入力したときは移動しません。

このポータルで次のような解決策を見つけました。

1) ActionResult を非公開にする - しかし、ブラウザに URL を入力し、ActionResult の作成に移動するリンクをクリックすると、Http:404 Page not found エラーが発生します。

参照されたリンク:直接要求された場合、特定の PartialViews が提供されないようにすることは可能ですか? 2) ActionResult メソッドで DataAnnotation [ChildActionOnly]を使用します。しかし、これでも目的の結果が得られず、エラーも発生しました。同じエラー HTTP:404

3) ControllerContext.IsChildActionを使用してみましたが、リンクのクリック時または URL の入力時にこの ActionResult に移動するかどうかにかかわらず、常に値 false を返すため、何をすべきか判断できません。いずれにせよリダイレクトすることによる私の問題。

Asp.net mvc ブラウザがアクションメソッドを呼び出さないようにする方法は?

みんな助けて..

4

1 に答える 1

2

質問の下のコメントの情報を考えると、Request.UrlReferrer を使用したくないことはほぼ確実です。この値は簡単に偽装される可能性があるため、セキュリティ目的で使用するべきではありません。

認証されていないクライアントがアクション メソッドを呼び出すのを防ぐために、ほとんどの場合、Authorization フィルターを確認する必要があります (特に、AuthorizeAttributeを出発点として使用できます)。

于 2013-11-07T12:31:54.350 に答える