System.Web.Mvc.AuthorizeAttribute не работает с NinjectDependencyResolver - PullRequest
0 голосов
/ 06 февраля 2012

Я создал веб-приложение ASP.Net MVC и использовал NuGet для установки Ninject версии 2.2.1.4 и Ninject.MVC3 версии 2.2.2.0.Это приложение использует формы аутентификации.У меня проблема с получением авторизации для работы ...

Это мой метод Application_Start в Global.asax:

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>

Проблема заключается в том, что неавторизованные пользователи сразу переходят в представление About, а не перенаправляются в LogOn.Я знаю, что проблема с NinjectDependencyResolver, потому что, когда я удаляю строку «DependencyResolver.SetResolver ...» из Application_Start, перенаправленные неавторизованные пользователи.

Буду признателен за вашу помощь.

С уважением, Фил

1 Ответ

1 голос
/ 06 февраля 2012

Вы не должны устанавливать DependencyResolver самостоятельно.

Прочтите документацию https://github.com/ninject/ninject.web.mvc/wiki/Setting-up-an-MVC3-application о том, как настроить приложение MVC с использованием этого расширения.

...