it-swarm-pt.tech

Não é possível usar um ../ principal para sair acima do diretório superior

Eu tenho um site asp.net com ele temos área de administração com a página de login para o administrador apenas e todo o site é permitido para todos - eu preciso perguntar como definir a configuração de segurança certa para ele como eu recebo este erro 

Não é possível usar um líder .. para sair acima do diretório superior. 
 Descrição: Ocorreu uma exceção não tratada durante a execução da solicitação da web atual. Revise o rastreamento de pilha para obter mais informações sobre o erro e onde ele foi originado no código. 
 
 Detalhes da exceção: System.Web.HttpException: Não é possível usar um líder .. para sair acima do diretório superior. 
 
 Erro de origem: 
 
 Uma exceção não tratada foi gerada durante a execução da solicitação da web atual. Informações sobre a origem e a localização da exceção podem ser identificadas usando o rastreamento de pilha de exceção abaixo. 
 
 Rastreamento de pilha: 
 
 
 [HttpException (0x80004005): Não é possível usar um entrelinha .. para sair acima do diretório superior.] 
 System.Web.Util.UrlPath.ReduceVirtualPath (caminho da cadeia) +8862087 
 System.Web.Util.UrlPath.Reduce (caminho da cadeia) +52 
 System.Web.Util.UrlPath .Combine (Cadeia appPath, Cadeia basepath, Cadeia relativa) +214 
 System.Web.UI.Control.ResolveClientUrl (Cadeia relativeUrl) +180 
 System.Web.UI.WebControls.Image.AddAttributesToRender (Escritor HtmlTextWriter) +68 
 System.Web.UI.WebControls.WebControl.RenderBeginTag (escritor HtmlTextWriter) +20 
 System.Web.UI.WebControls.WebControl.Render (escritor HtmlTextWriter) +20 
 System.Web.UI.Control.RenderControlInternal (escritor HtmlTextWriter, adaptador ControlAdapter) +27 
 System.Web.UI.Control.RenderControl (escritor HtmlTextWriter, adaptador ControlAdapter) +99 
 System.Web.UI.Control.RenderControl (escritor HtmlTextWriter) +25 
 System.Web. UI.Control.RenderChildrenInternal (escritor HtmlTextWriter, filhos ICollection) +134 
 System.Web.UI.Control.RenderChildren (escritor HtmlTextWriter) +19 
 System.Web.UI.HtmlControls.HtmlForm.RenderChildren (Escritor HtmlTextWriter) +163 
 System.Web.UI.HtmlControls.HtmlContainerControl.Render (escritor HtmlTextWriter) +32 
 System.Web.UI.HtmlControls.HtmlForm.Render (saída HtmlTextWriter) +51 
 System.Web.UI.Control.RenderControlInternal (escritor HtmlTextWriter, adaptador ControlAdapter) +27 
 System.Web.UI.Control.RenderControl (escritor HtmlTextWriter, adaptador ControlAdapter) +99 
 System.Web.UI.HtmlControls.HtmlForm.RenderControl (escritor HtmlTextWriter) +40 
 System.Web.UI.Control.RenderChildrenInternal (escritor HtmlTextWriter, filhos ICollection) +134 
 System.Web. UI.Control.RenderChildren (escritor HtmlTextWriter) +19 
 System.Web.UI.Control.Render (escritor HtmlTextWriter) +10 
 System.Web.UI.Control.RenderControlIn ternal (escritor HtmlTextWriter, adaptador ControlAdapter) +27 
 System.Web.UI.Control.RenderControl (escritor HtmlTextWriter, adaptador ControlAdapter) +99 
 System.Web.UI.Control.RenderControl (escritor HtmlTextWriter ) +25 
 System.Web.UI.Control.RenderChildrenInternal (escritor HtmlTextWriter, filhos ICollection) +134 
 System.Web.UI.Control.RenderChildren (escritor HtmlTextWriter) +19 
 System.Web.UI.Page.Render (escritor HtmlTextWriter) +29 
 System.Web.UI.Control.RenderControlInternal (escritor HtmlTextWriter, adaptador ControlAdapter) +27 
 System.Web.UI. Control.RenderControl (escritor HtmlTextWriter, adaptador ControlAdapter) +99 
 System.Web.UI.Control.RenderControl (escritor HtmlTextWriter) +25 
 System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Booleano inclui EstágiosApósO ponto de sincronização) +1266

meu arquivo de configuração: 

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

 

39
user186816

O que isto significa é que sua página da web está se referindo ao conteúdo que está na pasta um nível acima da sua página, mas sua página já está na pasta raiz do site, portanto, o caminho relativo é inválido. A julgar pela sua mensagem de exceção, parece que um controle de imagem está causando o problema.

Você deve ter algo como:

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

Mas como a página em si está na pasta raiz do site, ela não pode se referir ao conteúdo um nível acima, que é o que o ..\ líder está fazendo.

55
Adam Ralph

Você pode usar~/img/myImage.pngem vez de../img/myImage.pngpara evitar esse erro em páginas ASP.NET.

15
Majid

Você tem uma imagem ou um link favicon do estilo ="../" em algum lugar, que se o "../" fosse válido, iria além do topo do site, assim:

Imagem:

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

Página

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

Válido nessa página: ../Images/test.jpg
Lançaria um erro: ../../Images/test.jpg

9
Nick Craver

No meu caso, comentou-se HTML em uma página mestra!

Quem sabia que o HTML comentado como esse era realmente interpretado pelo ASP.NET!

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

Isso significa que um dos caminhos tem um ".." no início dele que resultaria na saída da hierarquia de pastas raiz do site. Você precisa google "asp.net caminhos relativos" ou algo parecido para ajudá-lo com seu problema.

BTW, uma dica para onde o problema está incluído na página de exceção que você viu. Ele irá realmente dizer em qual arquivo ele encontrou o problema.

Para evitar futuras ocorrências dessa exceção, faça uma pesquisa na solução inteira para essa sequência: "../". Se você encontrar algum desses arquivos no caminho raiz do seu site, solucione-os. 

2
user3409893

Eu tive o problema de ocorrer no meu sistema de uma maneira muito estranha. No meu sistema, os clientes criam produtos que ficam dentro de uma estrutura de diretórios de categorias de produtos. Portanto, o ProductA pode ficar na pasta CategoryInner dentro da pasta CategoryOuter. Acabei de adicionar um recurso em que meu URL mostraria a categoria aninhando-se no URL:

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

Obviamente, o aninhamento na URL era apenas para fins de SEO (e para mostrar ao usuário em que categoria seu produto estava. Mas quando eu usei ResolveClientUrl em algumas URLs que costumavam funcionar, ele deve ter sido confundido com o caminho extra falso. A mensagem de erro estava aparecendo no depurador em alguma linha que nunca foi o problema, então levei algum tempo para descobrir o que estava acontecendo. Passei e removi todas as minhas chamadas ResolveClientUrl que agiam em qualquer coisa que não Comece com um ~ e faça o resto dos caminhos caminhos absolutos.

0
Brett

Mudei meu projeto de hospedagem "padrão" para o Azure e recebo o mesmo erro ao tentar abrir a página com a reescrita de url. Ou seja regra é:

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

tente abrir my_site/iPod-eBook-Creator.html e obter este erro (página my_site/Product/ProductDetail? PRODUCT_UID = iPod_EBOOK_CREATOR pode ser aberto sem qualquer problema).

Eu verifiquei o site totalmente - nunca usei .. para "subir de nível"

0
Oleg Sh

Eu tive um problema e a resposta, embora frustrante de encontrar, foi resolvida fazendo uma busca na página ofensiva pelo ".." na mensagem de erro. Estou usando o Visual Studio Express e a solução estava mudando "../../Images/" para "~/Images /". Espero que isso ajude alguém.

0
user1830924