2009-06-02 5 views
0

J'ai essayé d'afficher l'URL en utilisant toutes sortes de méthodes de HttpRequest, j'ai aussi essayé l'objet VirtualPathUtility, mais je n'ai jamais été capable d'afficher la partie cachée "default.aspx" de la valeur par défaut ... quelle est la méthode ou la propriété qui récupère ce segment de l'URL?récupérer le segment caché default.aspx d'une URL

raison, je suis si près de créer un 404 sur le niveau de l'application qui attrape tous les 404, même les pages HTML, en utilisant File.Exist() sur le chemin d'accès de l'URL, malheureusement, cela ne fonctionne pas sur le page par défaut.

J'ai vu peu d'articles essayant de faire le contraire, enlever default.aspx quand il se produit, ce n'est pas le cas ici.

Edit: voici ce que je suis en train:

string fullOrigionalpath = context.Request.CurrentExecutionFilePath.ToString(); 
bool newUrl = System.IO.File.Exists(context.Server.MapPath(fullOrigionalpath)); 
if (!newUrl) throw new HttpException(404,"page not found"); 

maintenant vous voir, si la page est localhost/lexus/default.aspx, il fonctionne très bien sans erreur, mais si je tape l'adresse http://localhost/lexus/, l'erreur est levée, car si vous essayez de sortir le fullOriginalPath, il n'a pas de partie "default.aspx", donc Exists renvoie false! avez-vous un meilleur moyen de vérifier la validité des fichiers physiques?

Répondre

1

Je ne pense pas que ce soit possible, alors je me suis appuyé sur fonction de réécriture de IIS7.0 à forc e le default.aspx à apparaître à tout moment ..

0

Je ne sais pas ce que vous entendez par « partie cachée », mais avez-vous essayé ...

Request.Url.ToString() 
0

Vous être à la recherche de la AppRelativeCurrentExecutionFilePath propriété sur l'objet HttpRequest: http://msdn.microsoft.com/en-us/library/system.web.httprequest.apprelativecurrentexecutionfilepath.aspx

Si quelqu'un fait une demande de http://yourdomain.com/ la valeur de AppRelativeCurrentExecutionFilePath serait "~/default.aspx"

+0

cela n'a pas fonctionné non plus :(il retourne ~ /, et lors de la vérification de File.Exists, il renvoie false! Y a-t-il un paramètre IIS im manquant? – Ayyash

+0

Suis-je le comprendre correctement, ce que vous voulez est la possibilité d'obtenir le chemin physique du fichier pour le fichier demandé? Où l'URL demandée pourrait être quelque chose comme "http://mydomain.com/" et vous vous attendez à ce que le résultat soit "~/default.aspx"? –

Questions connexes