私の .net mvc 4 アプリでは、アクションを保護するためにFluentSecurity (1.4) の最新リリースを使用しています。
私の問題を示す例を次に示します。
2 つの編集アクション (get と post) を持つコントローラーがあるとします。
public class MyController : Controller
{
//
// GET: /My/
public ActionResult Edit(decimal id)
{
var modelToReturn = GetFromDb(id);
return View(modelToReturn);
}
[HttpPost]
public ActionResult Edit(MyModel model)
{
Service.saveToDb(model);
return View(model);
}
}
ここで、アクションごとに異なるセキュリティ ポリシーを設定したいと考えています。そのために、(流暢なセキュリティを使用して) 以下を定義します。
configuration.For<MyController>(x => x.Edit(0))
.AddPolicy(new MyPolicy("my.VIEW.permission"));
configuration.For<MyController>(x => x.Edit(null))
.AddPolicy(new MyPolicy("my.EDIT.permission"));
最初の構成は get を参照し、2 番目の構成は post を参照します。なぜ私がダミー パラメータを送信しているのか疑問に思われる場合は、こちらとこちらをご覧ください。
問題は、流暢なセキュリティがこれら 2 つの違いを見分けられないことです。したがって、これは機能しません。
それを克服する方法を見つけることができませんでした (アイデアは自由です)。新しい 2.0 ベータ リリースをインストールすることで、この問題を解決できるのではないかと考えています。
何か案は?