Problème d'implementation d"une interface HttpModule
Bonjour,
je n'y comprend rien, je n'arrive pas à implémenter une interface HttpModule :
voici mon interface :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
namespace Portal
{
interface IHttpModule
{
// called to attach module to app events
void Init(HttpApplication app);
// called to clean up
void Dispose();
}
} |
Ma classe :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Security.Principal;
namespace Portal
{
public class SmartCardAuthenticationModule : IHttpModule
{
private HttpApplication httpApp;
void OnAuthentication(object sender, EventArgs a)
{
HttpApplication application = (HttpApplication)sender;
HttpResponse response = application.Context.Response;
WindowsIdentity identity =
(WindowsIdentity)application.Context.User.Identity;
//LogUser(identity.Name);
}
#region IHttpModule Membres
public void Init(HttpApplication app)
{
this.httpApp = app;
httpApp.AuthenticateRequest += new EventHandler(OnAuthentication);
}
public void Dispose()
{
throw new NotImplementedException();
}
#endregion
}
} |
et enfin, mon web.config :
Code:
1 2 3 4 5 6
|
<httpModules>
<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add name="SmartCardAuthenticationModule" type= "Portal.SmartCardAuthenticationModule" />
</httpModules>
</system.web> |
Au lancement de la page, voici l'erreur qui apparait dans le navigateur :
Citation:
Message d'erreur de l'analyseur: Portal.SmartCardAuthenticationModule n'implémente pas IHttpModule. (C:\Users\Moi\Documents\Visual Studio 2008\Projects\SmartCardAuthentication\Portal\web.config line 83)
Erreur source:
Ligne 81 : <httpModules>
Ligne 82 : <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Ligne 83 : <add name="SmartCardAuthenticationModule" type= "Portal.SmartCardAuthenticationModule" />
Ligne 84 : </httpModules>
Ligne 85 : </system.web>
Si je supprime l'implementation de mon interface, j'ai exactement le même probleme :
public class SmartCardAuthenticationModule : IHttpModule
De plus, je tiens a signaler que je génère les classe Init() et Dispose() à l'aide visual studio (en version 2008).
Comment prendre en compte correctement cette interface.
aussi pour info : http://msdn.microsoft.com/en-us/library/ff649096.aspx
Merci d'avance