首页 文章

授权属性重新定义不起作用

提问于
浏览
0

我已经在授权中干了一段时间,发现了一些帮助我覆盖默认方法的页面。但是,似乎我无法使该属性起作用。我使用 Visual Studio 2013 调试我的项目,但它仍然没有停止在 Authorize 方法被重新划分的断点处。如果在将[1]放在类或甚至单个方法之后 Web 服务工作,这将不会成为问题。我已经尝试了所有它们似乎它返回的一切都是 401 Unauthorized。它甚至都没有进入所需的 Web 服务。以下是一些解释我问题的示例:

[Authorize]
[RoutePrefix("api/MyWS")]
public class MyWSController : ApiController
{
    private Test_UnitOfWork unitOfWork = new Test_UnitOfWork();

    [Route("Get"), HttpGet]
    public IEnumerable<MyWS> Get()
    {
        return unitOfWork.MyWSRepository.Get().OrderBy(s => s.Name);
    }

OnAuthorization 方法的重新定义

public class TokenValidationAttribute : System.Web.Http.AuthorizeAttribute
{
    public override void OnAuthorization(HttpActionContext actionContext)
    { ...

控制器调用 Web 服务

MyWSlist = client.GetSync<IList<MyWS>>("MyWS");

我想知道我在这里做错了什么,看到每当我尝试调试我的项目时,我似乎根本无法输入重写代码,它只返回 Unauthorized 错误。我也尝试重写其他方法,但没有骰子。问候

1 回答

  • 3

    我使用 Visual Studio 2013 调试我的项目,但它仍然没有停止在 Authorize 方法被重新划分的断点处。

    覆盖AuthorizeAttribute后,您希望将其应用于控制器或操作,除非您配置为全局过滤器。

    [TokenValidation]
    public class MyWSController : ApiController
    {
      ...
    }
    

    或者,我在你的问题中遗漏了什么?

相关问题