私は権限の注釈で私のコントローラをタグ付けしましたが、メソッドの1つを免除したいと思います...それはできますか?どうやって?認可の例外
[Authorize(Roles="Admin")]
public class ProductController : Controller
{
[DEAUTHORIZE]
public ActionResult Start(int it)
{ ... }
私は権限の注釈で私のコントローラをタグ付けしましたが、メソッドの1つを免除したいと思います...それはできますか?どうやって?認可の例外
[Authorize(Roles="Admin")]
public class ProductController : Controller
{
[DEAUTHORIZE]
public ActionResult Start(int it)
{ ... }
いいえ、これはできません。これを達成するための標準的な方法は、単に別のコントローラでStart
アクションを移動させることです。別の可能性は、IFilterProviderを構築することです。これは、手動でProductController
にベーキングするのではなく、条件付きで許可属性を適用します。たとえば、NInjectはこれを使用して、アクションフィルターの設定にpretty fluent syntaxを提供します。現在のコンテキストに基づいてconditionally apply themにすることができます。
MVC 4では、AllowAnonymousAttributeが導入されました。これは、アクション呼び出し者にAuthorizeAttributeをスキップするように指示します。
[AllowAnonymous]
ストレート回答ありがとうございます。 NInjectを調べる...面白そうだ。 – ekkis