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.

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top