2012-06-01 31 views
28

で非推奨のAntiForgeryToken ASP.Net MVC 4ベータを置き換えるためにASP.Net MVC 4 RCをインストールしました。既存のアプリケーションを実行しようとすると、AntiForgeryTokenが廃止されたというエラーメッセージが表示されます。ここに私のコードです:ASP.Net MVC 4 RC

using (Html.BeginForm("", "", FormMethod.Post, new { id = "MonthElectionForm" })) 
{ 
    @Html.AntiForgeryToken("AddEditMonthElection") 
} 

---- UPDATE ---

ASP.Net MVC 4 RCがValidateAntiForgeryToken属性とAntiForgeryTokenのHTMLヘルパーのための塩プロパティが廃止されました。だから、今私のコードは次のようになります。

コントローラ:

 [HttpPost] 
     [ValidateAntiForgeryToken] 
     public JsonResult CreateCompany(CompanyDataEntryViewModel modelData) 
     {...} 

形式:

@using (Html.BeginForm("", "", FormMethod.Post, new { id = "CreateCompanyDataEntryForm" })) 
{ 
    @Html.AntiForgeryToken() 
... 
} 

が生成されたHTMLを見ると、AntiForgeryTokenはまだ隠しフィールドを生成し、暗号化された価値を提供します。私の行動は依然として機能します。しかし、私は暗号化プロセスで使用する鍵を指定する能力を失いました。私はそのプロセスがどのように機能するかについてはあまりよく分かりませんが、私がアクションとフォームに塩の価値を設定していると言える前に、行動が投稿を受け入れるためには、値が一致しなければならなかった。だから、どうやって塩分の値を設定するのですか?私はそれがAntiForgeryConfig AdditionalDataProviderと関係があると思いますが、AntiForgeryConfig AdditionalDataProviderの使い方についてグーグルが見つかりません。助けてください。 パラメータを設定

おかげ

+6

詳細なエラーメッセージが表示されますか?このメソッドは、代わりにAntiForgeryToken()メソッドを使用してください。トークン内に埋め込むカスタムデータを指定するには、静的AntiForgeryConfig.AdditionalDataProviderプロパティを使用してください。 –

+0

はい、その詳細エラーメッセージが表示されました。 AntiForgeryConfig.AdditionalDataProviderプロパティはどのように使用しますか?以前と同じようにアクションで属性を使用できなくなることはありますか?多くの場合、googleing AntiForgeryConfig.AdditionalDataProviderプロパティが表示されます。 –

答えて

43

は不要であり、任意の追加的な保護を提供するので、我々はそれをサポートして削除されていませんでした。

詳細については、How to choose a salt value for ValidateAntiForgeryTokenの私の回答をご覧ください。

+1

ああ、今は意味をなさない。ソルト値のために使用していた値が暗号化プロセスで使用されていると仮定しました。これをクリアしていただきありがとうございます。 –

+1

同じページに複数のログインフォーム(異なるメソッド)があり、それぞれにトークンが必要な場合はどうしますか? 1つのフォームが開始されていて、もう1つが選択されて送信されているため、トークンにエラーが発生しています。 (内部ユーザーログインと外部ユーザーログインのように) – Craig