2010-07-13 8 views
4

프로그램 적으로 Sitecore에 로그인하려면 어떻게해야합니까? 예를 들어 Sitecore API의 작은 부분을 데스크톱 응용 프로그램에 연결하려면 데이터베이스에 액세스하려면 먼저 sitecore에 로그인해야합니다.프로그래밍 방식으로 Sitecore에 로그인하려면 어떻게해야합니까?

이 작업을 수행 할 수 있습니까?

+0

Sitecore API를 사용하여 데이터베이스에 직접 데이터를 쓰는 경우 실행중인 웹 사이트 인스턴스에 캐시가 오래되었음을 알리지 않고 매우 조심해야합니다. Sitecore 캐시는 매우 적극적으로 캐시하므로 중간 정도 복잡한 작업을 수행하는 경우 거의 항상 캐싱 문제가 발생합니다. 이것은 6.3을 사용하여 피할 수 있습니다. – Matt

답변

5

Mark가 말한 것처럼 데스크탑 응용 프로그램과 대화 할 웹 서비스를 만들어야합니다. 해당 서비스의 사용 권한을 처리해야하는 경우 두 가지 옵션이 있습니다.

  1. SecurityDisabler를 사용하여 관리 사용자 컨텍스트에서 웹 서비스를 실행하십시오. 당신이 UserSwitcher을 사용할 수있는보다 구체적인 제어를 위해

    using (new Sitecore.SecurityModel.SecurityDisabler()) 
    { 
        // do stuff here 
    } 
    
  2. . Security API Cookbook 페이지에서

    34

    string domainUser = @"domain\user"; 
    
    if (Sitecore.Security.Accounts.User.Exists(domainUser)) 
    { 
        Sitecore.Security.Accounts.User user = 
        Sitecore.Security.Accounts.User.FromName(domainUser,false); 
    
        using (new Sitecore.Security.Accounts.UserSwitcher(user)) 
        { 
         //TODO: code to invoke as user 
        } 
    } 
    
1

아니요. 그러나 할 수있는 일은 데스크톱 응용 프로그램을 지원하는 웹 서비스를 작성하고 Sitecore 컨텍스트에서 실행되도록하는 것입니다.

+0

그래도 웹 서비스가 있더라도 어떻게 할 수 있습니까? Sitecore 항목에 액세스하려면 로그인해야합니다. 내가 여기서 무엇을 놓치고 있니? –

+0

아니요, 웹 서비스없이 할 수 있습니다. 나는 코드를 파헤 치려고 노력할 것이다. Sitecore의 API를 사용하면 실제로 로그인하지 않습니다. API를 사용하면 완전히 액세스 할 수 있습니다. – EliThompson

0

목표 달성 할 수있는 쉬운 방법이있다 :

  1. 하는 데스크톱 응용 프로그램 및 참고 문헌 Sitecore 바이너리의 동일한 버전을 만들기가 귀하의 웹 응용 프로그램은 을 사용합니다.
  2. 데스크탑 응용 프로그램 이 웹 사이트 과 동일한 Sitecore DB를 가리 키도록 구성하십시오.
  3. 보안 비활성화 도구를 사용하고 다음과 같이 컨텍스트를 설정하십시오. Sitecore.Context.SetActiveSite ("website");

Sitecore는 사용자가하려는 작업이 작동하지 않는다고 말할 수 있습니다. 그러나 저를 신뢰하십시오, 이것은 작동하고 전에이 프로젝트를 사용했습니다.

추가 세부 사항 : Sitecore는 마스터, 코어 및 웹 DB를 데이터 저장소로 사용합니다. 내 제안 된 방법은 Sitecore API를 사용하여 DB에 직접 쓸 수 있습니다. 이 방법을 사용할 때 캐시의 의미를 알아야합니다.

건배!

+0

나는 우리가 해낸 Anand와 같은 프로젝트에서 일했다. 우리의 솔루션에는 Sitecore .config 파일과 .xml 파일이 많이 있으므로 잊지 않도록하십시오. – EliThompson

+0

이 접근 방식의 라이선스 관련 내용은 무엇입니까? – geedubb

관련 문제