System.Web.Mvc.AuthorizeAttribute无法与NinjectDependencyResolve

本文关键字:NinjectDependencyResolve AuthorizeAttribute Web Mvc System | 更新日期: 2023-09-27 18:22:29

我创建了一个ASP.Net MVC Web应用程序,并使用NuGet安装了Ninject版本2.2.1.4和Ninject.MVC3版本2.2.2.0。此应用程序使用表单身份验证。我在获得工作授权时遇到问题。。。

这是我在Global.asax:中的Application_Start方法

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    RegisterGlobalFilters(GlobalFilters.Filters);
    RegisterRoutes(RouteTable.Routes);
    var kernel = new StandardKernel();
    // binding code goes here... 
    // Remove this dependency resolver and Authorisation will work...
    DependencyResolver.SetResolver(new NinjectDependencyResolver(kernel));
}

我在控制器中的一个操作:

[Authorize(Roles = "Admin")]
public ActionResult About()
{
    return View();
}

以及我的web.config的身份验证部分:

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>

问题是,未经授权的用户直接进入"关于"视图,而不是重定向到"登录"。我知道问题出在NinjectDependencyResolver上,因为当我从Application_Start中删除"DependencySolutionr.SetResolver…"行时,未经授权的用户会被重定向。

我将感谢你的帮助。

尊敬的Phil

System.Web.Mvc.AuthorizeAttribute无法与NinjectDependencyResolve

您不应该自己设置DependencyResolver。

阅读文档https://github.com/ninject/ninject.web.mvc/wiki/Setting-up-an-MVC3-application关于如何使用此扩展设置MVC应用程序。

相关文章:
  • 没有找到相关文章