2013-10-10 2 views

Répondre

1

Le HttpApplication.BeginRequest Event « se produit comme le premier événement de la chaîne de pipeline HTTP d'exécution lorsque ASP.NET répond à une demande. »

Alors toute demande en passant par votre pipeline ASP.NET déclenchera cela, non seulement * .aspx, etc.

Vous ne pouvez pas l'éviter, mais vous pouvez vérifier le chemin du fichier demandé et effectuer et d'action au besoin, comme:

protected void Application_BeginRequest(object sender, System.EventArgs e) 
{ 
    string file = Request.Url.LocalPath.ToLower(); 
    if (file == ("/user/singin")) 
    { 
     //something 
    } 
} 

Bien qu'il y ait une autre façon tout à fait pour atteindre votre objectif (ce qui ne ressort pas de votre question).

+0

oui il est exactement ce que je veux. Mais je veux le faire pour l'action dans mvc Je veux dire que la page comme Utilisateur/SignIn où SignIn est une action et il n'a pas d'extensions. – Sergey

+1

@Sergey vous pouvez toujours utiliser cela ... le 'fichier' dans ce cas sera quelque chose comme '/ user/signin'. Il n'y aura pas nécessairement de prolongation. Exemple juste mis à jour. – MikeSmithDev

+0

ouais c'est logique. Merci beaucoup pour votre aide! – Sergey

3

Si vous voulez faire quelque chose limiter uniquement aux demandes de formulaires Web, je l'ai utilisé quelque chose comme ce qui suit:

protected void Application_BeginRequest(object sender, System.EventArgs e) 
{ 
    if(HttpContext.Current.Request.CurrentExecutionFilePathExtension == ".aspx"){ 
     //stuff to do 
    } 
} 
+1

oui c'est exactement ce que je veux. Mais je veux le faire pour l'action dans mvc Je veux dire que la page comme Utilisateur/SignIn où SignIn est une action et il n'a pas d'extensions. Pour ASP.NET avec des excitations tout est clair, mais pour MVC Action, il n'est pas clair comment l'accomplir. – Sergey

Questions connexes