asp.net - tipo - No se puede usar una referencia../ para salir por encima del directorio superior
el tipo object esta definido en un ensamblado (8)
Tengo un sitio web asp.net con él, tenemos un área de administración con página de inicio de sesión solo para administradores y todo el sitio está permitido para todos. Debo preguntar cómo definir la configuración de seguridad adecuada para este error.
Cannot use a leading .. to exit above the top directory. Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.Web.HttpException: Cannot use a leading .. to exit above the top directory. Source Error: An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below. Stack Trace: [HttpException (0x80004005): Cannot use a leading .. to exit above the top directory.] System.Web.Util.UrlPath.ReduceVirtualPath(String path) +8862087 System.Web.Util.UrlPath.Reduce(String path) +52 System.Web.Util.UrlPath.Combine(String appPath, String basepath, String relative) +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 writer, ICollection children) +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 output) +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 writer, ICollection children) +134 System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19 System.Web.UI.Control.Render(HtmlTextWriter writer) +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 writer, ICollection children) +134 System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +19 System.Web.UI.Page.Render(HtmlTextWriter writer) +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
mi archivo de configuración:
<authentication mode="Forms">
<forms name=".ASPXFORMSAUTH" protection="All" loginUrl="Admin/LoginPage.aspx" path="/" enableCrossAppRedirects="true">
</forms>
</authentication>
<authorization>
<deny users="*" />
</authorization>
¡En mi caso, resultó ser un comentario HTML en una página maestra!
¡Quién sabe si HTML interpretado como este en realidad fue interpretado por ASP.NET!
<!--
<link rel="icon" href="../../favicon.ico">
-->
Lo que esto significa es que su página web se refiere al contenido que está en la carpeta un nivel más arriba de su página, pero su página ya está en la carpeta raíz del sitio web, por lo que la ruta relativa no es válida. A juzgar por su mensaje de excepción, parece que un control de imagen está causando el problema.
Debes tener algo como:
<asp:Image ImageUrl="../foo.jpg" />
Pero dado que la página está en la carpeta raíz del sitio web, no puede referirse al contenido de un nivel superior, que es lo que está haciendo el líder ../
.
Puede usar ~/img/myImage.png
lugar de ../img/myImage.png
para evitar este error en las páginas ASP.NET.
Significa que una de las rutas tiene un "..." al principio que daría como resultado la salida de la jerarquía de la carpeta raíz del sitio web. Debes buscar en google "rutas relativas a asp.net" o algo así para ayudarte con tu problema.
Por cierto, una pista de dónde está el problema está incluido en la página de excepción que viste. En realidad, le dirá en qué archivo encontró el problema.
Para evitar futuras apariciones de esta excepción, realice una búsqueda en toda la solución de esta cadena: "../". Si encuentra alguno de esos archivos en la ruta raíz de su sitio web, hágalos.
Trasladé mi proyecto del alojamiento "estándar" a Azure y recibí el mismo error cuando intento abrir la página con url-rewrite. Es decir, la regla es:
<add key="/iPod-eBook-Creator.html" value="/Product/ProductDetail?PRODUCT_UID=IPOD_EBOOK_CREATOR" />
intente abrir my_site / iPod-eBook-Creator.html y obtenga este error (página my_site / Product / ProductDetail? PRODUCT_UID = IPOD_EBOOK_CREATOR se puede abrir sin ningún problema).
Revisé completamente el sitio, nunca lo usé ... para "subir de nivel"
Tuve el problema en mi sistema de una manera muy extraña. En mi sistema, los clientes crean productos que se encuentran dentro de una estructura de directorios de categorías de productos. Entonces, ProductA podría sentarse en la carpeta CategoryInner dentro de la carpeta CategoryOuter. Acababa de agregar una función donde mi URL mostraría la categoría anidando en la URL de esta manera:
http://www.somedomain.com/product/CategoryOuter/CategoryInner/ProductA.aspx
Obviamente, la anidación en la URL era solo para fines de SEO (y para mostrarle al usuario en qué categoría se encontraba su producto). Pero cuando usé ResolveClientUrl en algunas URL que solían funcionar, debe haber sido confundido por la ruta falsa adicional. El mensaje de error aparecía en el depurador en alguna línea que nunca fue el problema, así que me tomó bastante tiempo averiguar qué estaba pasando. Completé y eliminé todas mis llamadas ResolveClientUrl que actuaban sobre cualquier cosa que no funcionara. comienza con un ~ y convierte el resto de las rutas en caminos absolutos.
Tuve un problema así y la respuesta, aunque frustrante de encontrar, se resolvió haciendo una búsqueda en la página ofensiva para el "..." en el mensaje de error. Estoy usando Visual Studio Express y la solución estaba cambiando "../../Images/" a "~ / Images /". Espero que esto ayude a alguien.
Usted tiene una imagen o un enlace de favicon del estilo ="../"
algún lugar, que si el "../" fuera válido, iría más allá de la parte superior del sitio, así:
Imagen:
http://example.com/Images/test.jpg
Página
http://example.com/Pages/test.aspx
Válido en esa página: ../Images/test.jpg
../../Images/test.jpg
un error: ../../Images/test.jpg