2010-11-24 32 views
0

J'ai écrit un HTTPModule pour le but de redirection et installé dans GAC et référencé dans le fichier racine web.config. Cela fonctionne très bien pour les sites d'équipe.SharePoint Site de publication HTTPModule

J'utilise PreRequestHandlerExecute pour voir la demande est page ou non et appeler

public void Init(HttpApplication context) 
     { 
      this.app = context; 
      this.app.PreRequestHandlerExecute += new EventHandler(Application_PreRequestHandlerExecute); 
     } 

void Application_PreRequestHandlerExecute(object source, EventArgs e) 
     { 
      Page page = HttpContext.Current.CurrentHandler as Page; 
      if (page != null) 
      { 
       page.PreInit += new EventHandler(Perform_Redirection); 
      } 
     } 

et dans la méthode Perform_Redirection que je fais les choses de redirection.

void Perform_Redirection(object source, EventArgs e) 
    { 
     //logic goes here for redirection 
    } 

Le code ci-dessus fonctionne bien pour les sites d'équipe mais pas pour les sites de publication. Le Page.PreInit ne déclenche pas pour les sites de publication.

S'il vous plaît aidez-moi à résoudre ce problème!

J'utilise PreRequestHandlerExecut e, parce que j'ai besoin d'objet de session et d'autres détails sinon j'aurais utilisé BeginRequest.

Répondre

0

Je résolus en déplaçant le code de redirection dans le gestionnaire d'événements PreRequestHandlerExecute

+1

Vous devez accepter cette réponse si elle a résolu le problème comme décrit. – razlebe