it-swarm.com.de

Ein führendes ../ kann nicht zum Beenden über dem obersten Verzeichnis verwendet werden

Ich habe eine asp.net-Website, auf der wir einen Admin-Bereich mit Anmeldeseite für den Administrator haben. Alle Websites sind für alle zugelassen. Ich muss fragen, wie Sie die richtige Sicherheitskonfiguration definieren können, wenn ich diesen Fehler erhalte 

Ein führendes .. kann nicht zum Beenden über dem obersten Verzeichnis verwendet werden. 
 Beschreibung: Während der Ausführung der aktuellen Webanforderung ist eine unbehandelte Ausnahme aufgetreten. Überprüfen Sie die Stack-Ablaufverfolgung auf weitere Informationen zu dem Fehler und wo er im Code entstanden ist. 

 Ausnahmedetails: System.Web.HttpException: Es kann keine führende .. zum Beenden über dem obersten Verzeichnis verwendet werden .

 Quellfehler: 

 Während des Befehls wurde eine unbehandelte Ausnahme generiert Ausführung der aktuellen Webanfrage. Informationen zum Ursprung und zum Ort der Ausnahme können mithilfe der Ablaufverfolgung für Ausnahmestapel identifiziert werden. 

 Stack-Trace: 


 [HttpException (0x80004005): Es kann kein führender .. zum Beenden über dem obersten Verzeichnis verwendet werden.] 
 System.Web.Util.UrlPath.ReduceVirtualPath (String-Pfad) +8862087 
 System.Web.Util.UrlPath.Reduce (String-Pfad) +52 
 System.Web.Util.UrlPath.Combine (String appPath, String-Basispfad, String relativ) +214 
 System.Web.UI.Control.ResolveClientUrl (String relativeUrl) +180 
 System.Web.UI.WebControls.Image.AddAttributesToRender (HtmlTextWriter-Writer) +68 
 System.Web.UI.WebControls.WebControl.RenderBeginTag (HtmlTextWriter-Writer) +20 
 System.Web.UI.WebControls.WebControl.Render (HtmlTextWriter-Writer) +20 
 System.Web.UI.Control.RenderControlInternal (HtmlTextWriter-Writer, ControlAdapter-Adapter) +27 
 System.Web.UI.Control.RenderControl (HtmlTextWriter-Writer, ControlAdapter-Adapter) +99 
 System.Web.UI.Control.RenderControl (HtmlTextWriter-Writer) +25 
 System.Web.UI.Control.RenderChildrenInternal (HtmlTextWriter-Schreiber, ICollection-Kinder) +134 
 System.Web.UI.Control.RenderChildren (HtmlTextWriter-Writer) +19 
 System.Web.UI.HtmlControls.HtmlForm.RenderChildren (HtmlTextWriter-Writer) +163 
 System.Web.UI.HtmlControls.HtmlContainerControl.Render (HtmlTextWriter-Writer) +32 
 System.Web.UI.HtmlControls.HtmlForm.Render (HtmlTextWriter-Ausgabe) +51 
 System.Web.UI.Control.RenderControlInternal (HtmlTextWriter-Writer, ControlAdapter-Adapter) +27 
 System.Web.UI.Control.RenderControl (HtmlTextWriter-Writer, ControlAdapter-Adapter) +99 
 System.Web.UI.HtmlControls.HtmlForm.RenderControl (HtmlTextWriter-Writer) +40 
 System.Web.UI.Control.RenderChildrenInternal (HtmlTextWriter-Schreiber, ICollection-Kinder) +134 
 System.Web.UI.Control.RenderChildren (HtmlTextWriter-Writer) +19 
 System.Web.UI.Control.Render (HtmlTextWriter-Schreiber) +10 
 System.Web.UI.Control.RenderControlInternal (HtmlTextWriter-Writer, ControlAdapter-Adapter) +27 
 System.Web.UI.Control.RenderControl (HtmlTextWriter-Writer, ControlAdapter-Adapter) +99 
 System.Web.UI.Control.RenderControl (HtmlTextWriter-Writer) +25 
 System.Web.UI.Control.RenderChildrenInternal (HtmlTextWriter-Schreiber, ICollection-Kinder) +134 
 System.Web.UI.Control.RenderChildren (HtmlTextWriter-Writer) +19 
 System.Web.UI.Page.Render (HtmlTextWriter-Schreiber) +29 
 System.Web.UI.Control.RenderControlInternal (HtmlTextWriter-Writer, ControlAdapter-Adapter) +27 
 System.Web.UI.Control.RenderControl (HtmlTextWriter-Writer, ControlAdapter-Adapter) +99 
 System.Web.UI.Control.RenderControl (HtmlTextWriter-Writer) +25 
 System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1266

meine Konfigurationsdatei: 

 <authentication mode="Forms">
  <forms name=".ASPXFORMSAUTH" protection="All" loginUrl="Admin/LoginPage.aspx" path="/" enableCrossAppRedirects="true">
  </forms>
</authentication>
<authorization>
  <deny users="*" />
</authorization>

 

39
user186816

Dies bedeutet, dass Ihre Webseite sich auf Inhalte bezieht, die sich in dem Ordner befinden, der sich eine Ebene von Ihrer Seite entfernt befindet. Ihre Seite befindet sich jedoch bereits im Stammordner der Website, sodass der relative Pfad ungültig ist. Gemessen an Ihrer Ausnahmemeldung sieht es so aus, als würde ein Bildsteuerelement das Problem verursachen.

Sie müssen etwas haben wie:

<asp:Image ImageUrl="..\foo.jpg" />

Da sich die Seite selbst jedoch im Stammverzeichnis der Website befindet, kann sie sich nicht auf Inhalte beziehen, die eine Ebene höher liegen. Dies ist, was der führende ..\ tut.

55
Adam Ralph

Sie können~/img/myImage.pnganstelle von../img/myImage.pngverwenden, um diesen Fehler in ASP.NET-Seiten zu vermeiden.

15
Majid

Sie haben ein Image oder einen Favicon-Link des Stils ="../" irgendwo, der, wenn "../" gültig wäre, über den oberen Rand der Site hinausgehen würde, wie folgt:

Bild:

http://example.com/Images/test.jpg

Seite

http://example.com/Pages/test.aspx

Gültig auf dieser Seite: ../Images/test.jpg
Würde einen Fehler auslösen: ../../Images/test.jpg

9
Nick Craver

In meinem Fall stellte sich heraus, HTML in einer Masterseite auskommentiert zu sein!

Wer wusste, dass auskommentiertes HTML wie dieses tatsächlich von ASP.NET interpretiert wurde!

<!--
<link rel="icon" href="../../favicon.ico">
-->
2
Matthew Lock

Dies bedeutet, dass einer der Pfade am Anfang ein ".." hat, was dazu führen würde, dass die Stammordnerhierarchie der Website verlassen wird. Sie müssen "asp.net relative path" oder etwas ähnliches googeln, um Ihnen bei Ihrem Problem zu helfen.

Übrigens, ein Hinweis darauf, wo das Problem liegt, ist auf der Ausnahmeseite enthalten, die Sie gesehen haben. Es wird Ihnen tatsächlich sagen, in welcher Datei das Problem gefunden wurde.

Um zukünftige Vorkommen dieser Ausnahme zu vermeiden, führen Sie eine Suche in der gesamten Lösung nach dieser Zeichenfolge durch: "../". Wenn Sie eine dieser Dateien in den Dateien im Stammverzeichnis Ihrer Website finden, adressieren Sie sie. 

2
user3409893

Ich habe das gleiche Problem ... und ich habe es getan.

Mein Code vorher:

<link rel="stylesheet" href="../css/style.default.css" type="text/css" />

und das Problem wurde behoben, nachdem ich meinen Code folgendermaßen geändert hatte:

<link rel="stylesheet" href="css/style.default.css" type="text/css" />

daher denke ich, dass "href=../" nicht erlaubt ist, da ich kein Problem habe, wenn ich "../" in "src=../" verwende.

Danke im Voraus

0
kho dir

Ich hatte das Problem auf sehr seltsame Weise auf meinem System. In meinem System erstellen Kunden Produkte, die sich in einer Verzeichnisstruktur von Produktkategorien befinden. ProductA kann sich also im Ordner CategoryInner im Ordner CategoryInner befinden. Ich hatte gerade eine Funktion hinzugefügt, bei der meine URL die Kategorienverschachtelung der URL auf diese Weise anzeigen würde:

http://www.somedomain.com/product/CategoryOuter/CategoryInner/ProductA.aspx

Offensichtlich diente die Verschachtelung der URL nur zu SEO-Zwecken (und um dem Benutzer zu zeigen, in welcher Kategorie sich sein Produkt befand.) Aber wenn ich ResolveClientUrl für einige funktionierende URLs verwendete, muss dies durch die zusätzlichen gefälschten Pfade verwirrt sein. Die Fehlermeldung wurde im Debugger in einer Zeile angezeigt, die nie das Problem war. Ich brauchte einige Zeit, um herauszufinden, was los war. Ich habe alle meine ResolveClientUrl-Aufrufe, die auf etwas reagierten, entfernt und entfernt Beginnen Sie mit a ~ und machen Sie den Rest der Pfade zu absoluten Pfaden.

0
Brett

Ich habe mein Projekt von "Standard" -Hosting nach Azure verschoben und erhalte die gleiche Fehlermeldung, wenn ich versuche, die Seite mit URL-Rewrite zu öffnen. Das heißt Regel ist:

<add key="/iPod-eBook-Creator.html" value="/Product/ProductDetail?PRODUCT_UID=iPod_EBOOK_CREATOR" />

versuchen Sie, my_site/iPod-eBook-Creator.html zu öffnen, und erhalten Sie diese Fehlermeldung (Seite my_site/Product/ProductDetail? PRODUCT_UID = iPod_EBOOK_CREATOR kann problemlos geöffnet werden).

Ich habe die komplette Site überprüft - noch nie benutzt .. "Level"

0
Oleg Sh

Ich hatte ein solches Problem und die Antwort, obwohl frustrierend zu finden, wurde gelöst, indem auf der betreffenden Seite nach ".." in der Fehlermeldung gesucht wurde. Ich verwende Visual Studio Express und die Lösung änderte "../../Images/" in "~/Images /". Hoffentlich hilft das jemandem.

0
user1830924