0

私はASP.NET Coreアプリケーションを持っています。これまでのPOSTアクションメソッドのすべてでValidateAntiForgeryToken属性を使用しています。MVCのコントローラレベルでValidateAntiForgeryTokenを使用するには?

コントローラレベルでValidateAntiForgeryTokenを使用すると、POSTGETの両方の処理ができるようになりました。以下は

ユーザーがIndexアクションメソッドがforgerytokenを受け取ることになりますどのようにイムわからない、URL http://localhost/searchにアクセスすると、サンプルコントローラ

[ValidateAntiForgeryToken] 
public class SearchController : Controller 
{ 
    public SearchController() 
    { 
    } 

    [HttpGet] 
    public IActionResult Index() 
    {   
     return View(); 
    }  

    [HttpPost] 
    public IActionResult Save(MyModel model) 
    { 

    } 

}

のですか?今すぐ要求に含まれているトークンがないので、エラーBad Requestが表示されます。

答えて

5

それだけPOSTリクエストで動作する偽造防止ヘルパー

http://blog.stevensanderson.com/2008/09/01/prevent-cross-site-request-forgery-csrf-using-aspnet-mvcs-antiforgerytoken-helper/

制限から、リクエストを取得できません。間違いなく、これは制限ではありません。通常のHTTP規約では、読み取り専用操作以外の目的でGET要求を使用しないでください。

したがって、コントローラレベルでは役に立ちません。

-1

ビューに偽造トークンを含める必要があります。

投稿を行う際に、反偽造トークンは、リクエストと一緒に提出されている方法
@using (Html.BeginForm("Save", "Search", FormMethod.Post)) 
{ 
    @Html.AntiForgeryToken() 
    // Rest of html 
} 

+0

私の質問はPOSTとは関係ありませんでした。そのGETについて – LP13

関連する問題