【问题标题】:Where to put AuthorizeAttribute extended class in ASP.Net authentication?在 ASP.Net 身份验证中将 AuthorizeAttribute 扩展类放在哪里?
【发布时间】:2012-07-25 21:32:21
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 因为你已经将它注册为过滤器,所以无论如何都会调用它。
  • @steen 是的,那我应该如何添加它?
  • 看看这篇解释用途和一些技巧和窍门的时髦文章:blogs.msdn.com/b/rickandy/archive/2011/05/02/…

标签: asp.net asp.net-mvc-3 authentication authorization


【解决方案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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-12
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-10
    • 1970-01-01
    • 2015-12-01
    相关资源
    最近更新 更多