首页 文章

.net MVC 的 AuthorizeAttribute 扩展...两个 problems/questions

提问于
浏览
1

我的第一个问题是,我在哪里放置这个自定义扩展,以便可以调用它而不是默认的 AuthorizeAttribute?

我目前创建了一个新项目,其中包含我的 MVC 解决方案中的所有业务逻辑。我的逻辑项目中有一个包含所有安全类的.cs 文件。我尝试在该文件中添加一个扩展类,在我的控制器上,它看到该类很好,当我添加属性时,intellisense 不会咆哮我,但是当我尝试编译时,我得到一个类型或命名空间的错误无法找到。为了编译,自定义属性是否需要放置在特殊位置?

第二个 question...could 与第一个相关:当我试图从 AuthorizeAttribute 覆盖 AuthorizeCore 方法时,我将 System.Web.HttpContextBase 作为 httpcontext 传入。由于某种原因,visual studio 无法解析 System.Web.HttpContextBase。这可能与我在解决方案中保存此类的位置有关。或者我可能需要在某处导入一个 dll 来扩展它?

请指教。

2 回答

  • 0

    据我所知,只要您在网站中正确引用了该项目,该类就可以在任何类库项目中。您可能想尝试重新编译项目 - 听起来它能够找到源文件,但代码不在 DLL 中。

    您可能需要在项目中添加对 System.Web.Abstractions 的引用。虽然“基础”类位于 System.Web 命名空间中,但它们位于不同的 DLL 中。

  • 0

    它适用于我,我希望这会对你有所帮助。

    using System.Web.Mvc;
    
    public class CustomAuthorize : AuthorizeAttribute
    {
    
    }
    
    In controller
    
     [CustomAuthorize]
    public class OrderController : Controller
    {
    
    }
    

相关问题