Как выполнить аутентификацию MVC через пользовательский httpmodule - PullRequest
2 голосов
/ 10 ноября 2010

Имейте устаревшее приложение, и оттуда мое приложение MVC называется. Я планировал использовать пользовательский httpmodule [класс AuthenticationModule наследует IHttpModule]. В Init я подключил BeginRequest и выполнил свою работу по FormAuthenication ...

     private void Application_BeginRequest(Object source, EventArgs e) {

         // Do my own authetication and issue FormAuthentication Ticket
    }

В web.config:

    <system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules runAllManagedModulesForAllRequests="true">
        <add name="AuthenticationModule" type="RealProperty.LegacySecurity.AuthenticationModule, RealProperty.LegacySecurity" preCondition="ManagedHandler"/>
    </modules>

Но мой AuthenticationModule никогда не срабатывал при отладке ... (1) Кто-нибудь может объяснить, почему его не вызвали? (2) Правильно ли выполнять мою аутентификацию в BeginRequest?

1 Ответ

2 голосов
/ 08 ноября 2011

Убедитесь, что в вашем файле Web.config есть оба раздела:

<system.web>
  <httpModules>
    <add name="MyAuthenticationModule" type="Ns.To.MyAuthenticationModule, MyAssembly" />
  </httpModules>
</system.web>

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true">
    <add name="MyAuthenticationModule" type="Ns.To.MyAuthenticationModule, MyAssembly" />
  </modules>
</system.webServer>
...