2016-11-10 16 views
0

HttpGetアクションメソッドに承認フィルタがある場合、対応するHttpPostも同様に必要ですか? HttpPostアクションメソッドは、ValidateAntiForgeryTokenとデータバインドで保護されています。すべてのユーザーは、LDAP経由で認証する必要があります。asp.net mvc5 HttpPostのカスタム認証

[HttpGet] 
[CustomAuthorization("Admin", "User")] 
public ViewResult MyMethod(){} 


[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult MyMethod([Bind(Include = "Vars")] Model model){} 
+0

投稿のアクションに認証フィルタを適用する必要があるかどうか。はい。 – Nikkster

+0

はい、HttpPostには認証フィルタが必要ですか – MinchMeister

答えて

0

あなたが持っているフィルタ属性は、メソッドに対して機能します。他のメソッドには何の影響もありません。クラスにも属性を設定すると、すべてのメソッドに影響が出ます(少なくとも普通のAuthorize属性はこのように動作しますので、これも同様です)。

ValidateAntiForgeryToken認証で何もしません。 HTMLからのトークンがクッキーからのトークンと等しいことを確認するだけです。あなたはそれについてもっと読むことができますが、基本的にはCSRFの攻撃から保護し、ユーザーを認証することではありません。

0

はい、この場合、ユーザーがMyMethodに投稿要求を行う権限を必要とする場合は、承認フィルタも必要です。

たとえば、デフォルトでHttpGet属性で宣言されたMyMethodアクションへのURL/{controller}/MyMethod/MVCルートに移動し、任意の認証フィルタなどを適用します。 POSTリクエストの場合も同様です。この場合、コールはHttpPostで破棄された他のアクションにルーティングされ、フィルタが実行されます。