1

コントローラーに権限アノテーションをタグ付けしましたが、メソッドの 1 つを免除したいのですが、それは可能ですか? どうやって?

[Authorize(Roles="Admin")]
public class ProductController : Controller
{
    [DEAUTHORIZE]
    public ActionResult Start(int it)
    { ... }
4

2 に答える 2

4

MVC 4 では、アクション呼び出し元に AuthorizeAttribute をスキップするように指示する AllowAnonymousAttribute が導入されました。

[AllowAnonymous]
于 2013-04-27T12:47:06.797 に答える
2

いいえ、これはできません。これを実現する標準的な方法は、単純にStartアクションを別のコントローラーに移動することです。もう 1 つの可能性は、カスタムIFilterProviderを構築することです。このカスタム IFilterProvider は、認可属性を手動ProductControllerで たとえば、NInject はこれを使用して、アクション フィルターを構成するための非常に流暢な構文を提供します。現在のコンテキストに基づいて条件付きで適用できます。

于 2011-06-21T07:33:15.747 に答える