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>
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.
Você pode usar~/img/myImage.png
em vez de../img/myImage.png
para evitar esse erro em páginas ASP.NET.
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
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">
-->
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.
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.
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"
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.