2017-07-19 281 views
1

MVC 5でクライアントをウェブサイトで更新するためのバックエンドを開発しています。しかし、私はこのエラーを越えました:必要な偽造防止クッキー "__RequestVerificationToken"が存在しません。私はイデイアを外しています

Error Image これはAntiForgeryToken

[ValidateAntiForgeryToken] 
[Authorize(Roles = "Admin")] 
[System.web.Mvc.AuthorizeSectionccess(sectionname = "IT")] 
public ActionResult Create() 
{ 
    return View(); 
} 
[ValidateAntiForgeryToken] 
[Authorize(Roles = "Admin")] 
[System.web.Mvc.AuthorizeSectionccess(sectionname = "IT")] 
[System.web.Mvc.AuthorizePermitionAccess(PermissonType = "Add")] 
[HttpPost] 
public ActionResult Create(Welcome_conteudoPage model) 
{ 
    DB.Welcome_conteudoPage.Add(model); 
    DB.SaveChanges(); 

    return Redirect("Index"); 
    return View(model); 
} 

を持つメソッドを持つコントローラであり、これは、私は両方でAntiForgeryTokenを使用しているビュー

@using (Html.BeginForm("Create", "ConteudosPageController", FormMethod.Post)) 
{ 
    @Html.AntiForgeryToken() 
    <div> 
     @Html.TextAreaFor(model => model.ConteudoStandard) 
    </div> 
    <div> 
     <input type="submit" value="Inserir" class="btn btn-primary"/> 
    </div> 
    <div> 
     Texto: 
     @Html.DisplayFor(model => model.ConteudoStandard) 
    </div> 
} 

です終了してもそのエラーが発生します。私はこのような質問が何千もあることを知っていますが、私は3日間、そして何の結果もなしに、提案されているすべてのソリューションを試しました。

編集:私は、ビューはそれが答えではないかもしれませんTinyMCEのエディタ

答えて

0

ためのコントローラとモデルを呼び出すために起こっていることを言及するのを忘れてしまった、しかし、あなたは反偽造トークンが何を誤解してたかもしれませんそれを使用する。

まず、ビューで@ Html.AntiforgeryTokenを使用すると、セッションまたはCookieに何かが登録されます(どちらが覚えていないか)。

検証偽造トークン属性を検証すると、そのトークンが検索され、非表示フィールドに渡されたトークンと照合されます。一致しない場合は、投稿要求があなたの意見から来なかった可能性が最も高いです。

注意すべき点は、トークンを送信する要求でbodyパラメータが必要であることです。あなたは身体を持っていない要求にはこれを持たないでしょう。 Get要求には本文がないため、validateantiforgerytoken属性は必要ありません。

+0

お返事ありがとうございます。私は反偽造が何を意味し、何を意味するのかを知っています。主な問題は、実装が完了していることです(正しい方法で考えています)。なぜ「コア」コードを使いこなしても、トークンを許可しないのですか? –

+0

Create()メソッドからvalidateantifirgerytoken属性を削除しようとしましたか?それは私にGETのように見えますが、それは偽造防止トークンを持っていません – Slicksim

+0

あなたは正しかった、それは取得であり、私はそこに検証トークンを持っていました。私にはエラーがありますが。私は残りの部分を終えるまで反偽造防止トークンなしで作業しています。私が解決策を見つけたらそれを投稿します。そしてもう一度ありがとうございます –

関連する問題