0

在为 ASP.NET 实现授权时,我应该将AuthorizeAttribute实现的类放在哪里?

在我的项目中,我创建了一个名为BasicHttpAuthorizedAttribute实现System.Web.Http.AuthorizeAttribute类的类,并且我已经覆盖了我想要的方法。

我已将此类注册BasicHttpAuthorizedAttribute为过滤器。

我的问题是即使我没有提到[Authorized]控制器方法之上的属性,BasicHttpAuthorizedAttribute类的OnAuthorization()方法也会被调用。

那不应该是这样的,对吧?[Authorized]仅当您在控制器方法之上提到了属性时,才应调用它。我对吗?

我在这里做错了什么?(我的项目是一个 ASP.Net web api 项目,我正在使用System.Web.Http.AuthorizeAttribute类)

4

1 回答 1

1

基本上,它每次都会进入OnAuthorization()事件,因为您已将其注册为过滤器。

这篇文章有一些关于一揽子过滤和匿名异常的巧妙技巧和旅行,我认为这就是你想要的。它可能适用于 MVC,但所使用的技术应该适用于大多数 ASP.NET 类型,只需稍加调整即可。

http://blogs.msdn.com/b/rickandy/archive/2011/05/02/securing-your-asp-net-mvc-3-application.aspx

文章示例:

[HttpPost]
[AllowAnonymous]
public ActionResult LogOn(LogOnModel model, string returnUrl)
于 2012-07-27T08:14:58.433 回答