在实施ASP.NET授权时,我应该在哪里放置AuthorizeAttribute
实现的类?
在我的项目中,我创建了一个名为BasicHttpAuthorizedAttribute
的类,它实现了System.Web.Http.AuthorizeAttribute
类,并且我已经覆盖了我想要的方法。
我已将此BasicHttpAuthorizedAttribute
类注册为过滤器。
我的问题是即使我没有在控制器方法之上提及[Authorized]
属性,也会调用BasicHttpAuthorizedAttribute
类的OnAuthorization()
方法。
[Authorized]
属性时才应该调用它。我是对的吗?
我在这里做错了什么? (我的项目是一个ASP.Net web api项目,我正在使用System.Web.Http.AuthorizeAttribute
类)
答案 0 :(得分: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)