Asp.net mvc net MVC的属性扩展…两个问题/问题

Asp.net mvc net MVC的属性扩展…两个问题/问题,asp.net-mvc,authorize-attribute,Asp.net Mvc,Authorize Attribute,我的第一个问题是,我应该把这个自定义扩展放在哪里,以便调用它,而不是默认的authorized属性 我目前已经创建了一个新项目,它包含了我的MVC解决方案中的所有业务逻辑。我的逻辑项目中有一个.cs文件,其中包含我的所有安全类。我尝试向该文件添加一个扩展类,在我的控制器上,它看到该类很好,当我添加属性时,intellisense没有对我咆哮,但是当我尝试编译时,我得到一个错误,即找不到类型或名称空间。为了编译,自定义属性是否需要放在特殊的地方 第二个问题……可能与第一个问题有关:当我试图从Aut

我的第一个问题是,我应该把这个自定义扩展放在哪里,以便调用它,而不是默认的authorized属性

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

第二个问题……可能与第一个问题有关:当我试图从AuthorizeAttribute重写AuthorizeCore方法时,我将System.Web.HttpContextBase作为httpcontext传递。由于某些原因,visual studio无法解析System.Web.HttpContextBase。同样,这可能与我在解决方案中保存此类的位置有关。或者我需要在某个地方导入一个dll来扩展它


请告知。

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


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

这对我很有用,我希望这会对您有所帮助

using System.Web.Mvc;

public class CustomAuthorize : AuthorizeAttribute
{

}

In controller

 [CustomAuthorize]
public class OrderController : Controller
{

}

所有内容都被正确引用。我尝试将“usingsystem.Web.Abstractions”添加到我的.cs文件中,但它不喜欢这样。你建议我重新编译这个项目……但这就是我的问题所在,它不会编译。当我将扩展属性类直接添加到我的一个控制器文件时,它工作正常,只有当我将它放在单独的项目中(在不同的命名空间中)时,它才会失败。正如我所说,VS认为类很好,并在我的属性上相应地突出显示它,但我无法编译和构建解决方案……您是否将System.Web.Abstractions DLL引用添加到包含自定义属性代码的项目中?没有它就无法编译。一旦您可以编译该项目,我希望解决方案的其余部分也会编译。啊…以前没有添加它作为参考。我就这么做了,所有的信号都很完美!非常感谢。