2012-04-30 2 views
6

Tridion의 ContentManagment API를 사용하여 분류 범주 및 키워드를 검색하려고하지만 Access denied 오류가 발생합니다.Tridion 2009에서 사용자를 가장하는 방법은 무엇입니까?

나는 다음과 같은 방법이 있습니다

public Dictionary<string, string> GetKeywords(string tcmUri) 
{ 
    var result = new Dictionary<string, string>(); 

    try 
    { 
     // _settings.ImpersonationUser = "MYDOMAIN/myusername" 
     using (var session = new Session(_settings.ImpersonationUser)) 
     { 
      var category = new Category(new TcmUri(tcmUri), session); 
      var keywords = category.GetKeywords(new Filter()); 

      if (keywords != null && keywords.Count > 0) 
      { 
       foreach (var keyword in keywords) 
       { 
        result.Add(keyword.Id.ToString(), keyword.Title); 
       } 
      } 
     } 
    } 
    catch (Exception ex) 
    { 
     Logger.Log.Error(
      "Failed to retrieve keywords for '{0}'.".FormatWith(tcmUri), ex); 
    } 

    return result; 
} 

내가 _settings.ImpersonationUser에있어 사용자는 Tridion 내용 관리자에 대한 액세스 권한이있는 관리자로 구성되고 "SDL에서 가장을 사용자에 추가되었습니다 Tridion Content Manager 구성 "스냅인.

내가 갖는 오류는 다음

System.Runtime.InteropServices.COMException (0x80040302): 
<?xml version="1.0"?> 
<tcm:Error xmlns:tcm="http://www.tridion.com/ContentManager/5.0" 
    ErrorCode="80040302" Category="16" Source="Kernel" Severity="2"> 
    <tcm:Line ErrorCode="80040302" Cause="true" MessageID="16226"> 
     <![CDATA[Access denied for the user MYDOMAIN\myuser.]] 
     <tcm:Token>MYDOMAIN\myuser</tcm:Token> 
    </tcm:Line> 
    <tcm:Details> 
     <tcm:CallStack> 
      <tcm:Location>SystemBLST.GetUserContext</tcm:Location> 
      <tcm:Location>SystemBLST.IBLSecurityST_GetUserContext</tcm:Location> 
     </tcm:CallStack> 
    </tcm:Details> 
</tcm:Error> 

사람이 내가 잘못 뭘하는지에 대한 단서를 가지고 있습니까? 미리 감사드립니다.

답변

11

여기

  • ... 그것은 & Tridion을 가장 할 때 이해 Tridion에 액세스 할 수 있어야 코드를 실행하는 사용자 몇 가지입니다.
  • 코드를 실행하는 사용자 유효한 "도용 사용자"코드 가장하는 유효한 Tridion 사용자되어야
  • 사용자로 구성되어야한다.

이러한 3 가지 조건이 모두 해당되면 가장 (impersonation)이 작동합니다.

코드를 실행하면 코드가 실행되는 Windows 계정을 의미합니다. 이 계정에 Tridion에 대한 액세스 권한이 있으면 가장 (impersonation)을 사용할 필요가 없습니다.

희망이 도움이됩니다.

관련 문제