【问题标题】:ASP.NET MVC 2 - How to override an annotation for a single controller action?ASP.NET MVC 2 - 如何覆盖单个控制器操作的注释?
【发布时间】:2010-07-15 05:10:27
【问题描述】:

我有一个所有控制器都继承自的 BaseController。 CaseController 有 [Authorize] 注解,因此所有控制器都需要授权。

但我刚刚意识到,一个控制器操作不一定需要授权。我怎样才能关闭 [Authorize] 仅针对那个控制器操作?

using System.Web.Mvc;
using Unleashed.Service.Interfaces;

namespace Controllers
{
    [Authorize]
    [RequireHttps]
    public class BaseController : Controller
    {
    }
} 

控制器动作是通过另一个站点的 POST 调用的。他们通过传递令牌进行授权。他们不会通过表单身份验证获得授权。

[Authorize=false] // doesnt compile
[Authorize(false)] // doesnt compile
public ActionResult DoSomething(string token, string data)
{
}

【问题讨论】:

    标签: c# asp.net-mvc-2 annotations


    【解决方案1】:

    通过创建一个不从 BaseController 继承的新控制器并将操作添加到该控制器来解决。现在这一操作不需要授权,所有现有操作都保持原样。

    【讨论】:

      猜你喜欢
      • 2018-11-04
      • 2017-05-19
      • 2011-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-04
      • 1970-01-01
      • 2023-03-07
      相关资源
      最近更新 更多