Vários sites e fazer “cross-site” solicita ilegal
-
18-09-2019 - |
Pergunta
Eu tenho dois IIS sites apontando para pastas físicas diffent. Isso é para ser capaz de diferenciar o web.config e os arquivos e conjuntos utilizados para os sites Banco de dados é definido para apontar para a mesma instância para ambos os sites Em web.config são configuradas para iniciar a partir de diferentes peças O stucture é assim:
-
/ Sitecore / content / home / default
-
/ Sitecore / content / home / intranet
Até aí tudo bem.
Agora, o problema é que eu sou capaz de recuperar o conteúdo não pertencentes ao site real, digitando seu caminho completo. Ie.
http://www.default.com/sitecore/content/home/intranet.aspx
<-. Isso não deve ser permitido, desde www.default.com
é configurado com /sitecore/content/home/default
como root
Existe alguma built-in mecanismo para dissallow isso ou eu tenho que subclasse o itemresolver para fazer "sites cruzados" -os pedidos ilegal.
Solução
Este é algo a ver com a forma como Sitecore resolve itens, eu descobri 3 URL diferente do para cada item. Por exemplo dizer que tenho a seguinte estrutura:
-sitecore
-content
-home
-page1
Eu posso acessar Página1 seja através de:
-
http://mysite/sitecore/content/home/page1.aspx
-
http://mysite/page1.aspx
-
http://mysite/home/page1.aspx
No entanto sabendo que isso não vai ajudar a resolver o seu problema. A melhor solução que eu posso sugerir é para usar a segurança. No entanto, se o acesso anônimo local necessidade a questão é como você controlar isso?
Eu imagino que desde que você tem dois web.config separado é que você também tem que separar seções de configuração Sitecore. Então o que podemos fazer é criar um processo de pipeline que é executado como parte do pedido http começar pipeline (no web.config como / configuration / Sitecore / oleodutos / httpRequestBegin) a criação de um para cada site e atualizar o web.config relevante. Quando este processo é chamado poderia criar um usuário virtual que pertence a um grupo que restringe o acesso ao site o usuário solicitou.
Há algum código aqui que mostra como criar um usuário virtual:
aqui em pipelines:
Espero que isso ajude: -)
Outras dicas
Bem, se o item intranet (e abaixo) é protegido com segurança Sitecore ele não deve ser problema nem possível acessar:)
Se você não pode segurá-lo com segurança, em seguida, eu iria com o ItemResolver.
Felicidades