문제

서로 다른 물리적 폴더를 가리키는 두 개의 IIS 사이트가 있습니다.이것은 web.config를 차별화 할 수 있고 사이트 데이터베이스에 사용되는 파일 및 어셈블리는 web.config의 두 사이트 모두에 대해 동일한 인스턴스를 가리 키도록 설정되어 있습니다. Config는 다른 부분에서 시작하도록 구성되어 있습니다.

  • /사이트코어/콘텐츠/홈/기본

  • /sitecore/content/홈/인트라넷

여태까지는 그런대로 잘됐다.

이제 문제는 전체 경로를 입력하여 실제 사이트에 속하지 않은 콘텐츠를 검색할 수 있다는 것입니다.즉.

http://www.default.com/sitecore/content/home/intranet.aspx <-- 이것은 허용되어서는 안 됩니다. www.default.com 로 구성됩니다 /sitecore/content/home/default 루트로.

이를 허용하지 않는 기본 제공 메커니즘이 있습니까? 아니면 "교차 사이트" 요청을 불법으로 만들기 위해 itemresolver를 하위 클래스로 분류해야 합니까?

도움이 되었습니까?

해결책

이것은 Sitecore가 항목을 해결하는 방법과 관련이 있습니다. 각 항목에 대해 3 개의 다른 URL을 찾았습니다. 예를 들어 다음 구조가 있다고 말합니다.

-sitecore
  -content
    -home
      -page1

Page1에 액세스 할 수 있습니다.

  • http://mysite/sitecore/content/home/page1.aspx
  • http://mysite/page1.aspx
  • http://mysite/home/page1.aspx

그러나 이것이 아는 것은 문제를 해결하는 데 도움이되지 않습니다. 내가 제안 할 수있는 가장 좋은 솔루션은 보안을 사용하는 것입니다. 그러나 두 사이트 모두 익명 액세스가 필요한 경우 문제는 어떻게 제어합니까?

두 개의 개별 web.config가 있기 때문에 Sitecore 구성 섹션도 분리해야한다고 생각합니다. 따라서 우리가 할 수있는 것은 HTTP 요청 시작 파이프 라인 (web.config as/configuration/sitecore/pipelines/httprequestbegin)의 일부로 실행되는 파이프 라인 프로세스를 작성하고 각 사이트마다 하나를 생성하고 관련 Web.config를 업데이트하는 것입니다. 이 프로세스를 호출하면 사용자가 요청한 사이트에 대한 액세스를 제한하는 그룹에 속하는 가상 사용자를 만들 수 있습니다.

코드가 있습니다 여기 가상 사용자를 만드는 방법을 보여줍니다.

그리고 여기 파이프 라인 :

도움이 되었기를 바랍니다 :-)

다른 팁

인트라넷 항목(및 그 이하)이 Sitecore 보안으로 보호된다면 문제가 되지 않으며 액세스가 불가능하지도 않습니다. :)

보안을 통해 처리할 수 없다면 ItemResolver를 사용하겠습니다.

건배

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top