1

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

我目前创建了一个新项目,其中包含我的 MVC 解决方案中的所有业务逻辑。我的逻辑项目中有一个 .cs 文件,其中包含我所有的安全类。我尝试将扩展类添加到该文件并在我的控制器上,它看到该类很好,并且当我添加属性时智能感知并没有对我吠叫,但是当我尝试编译时,我收到类型或命名空间的错误找不到。自定义属性是否需要放在特殊的地方才能编译?

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

请指教。

4

2 回答 2

0

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

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

于 2010-01-11T17:18:17.943 回答
0

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

using System.Web.Mvc;

public class CustomAuthorize : AuthorizeAttribute
{

}

In controller

 [CustomAuthorize]
public class OrderController : Controller
{

}
于 2015-12-08T05:34:49.853 回答