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>
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.
Sie können~/img/myImage.png
anstelle von../img/myImage.png
verwenden, um diesen Fehler in ASP.NET-Seiten zu vermeiden.
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
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">
-->
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.
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
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.
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"
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.