2012-04-30 22 views
6

Tôi đang cố gắng sử dụng API ContentManagment của Tridion để truy xuất danh mục phân loại và từ khóa, nhưng tôi đang chạy vào lỗi Truy cập bị từ chối.Làm cách nào để cho phép người dùng mạo danh trong Tridion 2009?

tôi có phương pháp sau đây:

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; 
} 

Người dùng Tôi đã có trong _settings.ImpersonationUser có quyền truy cập vào các nội dung quản lý Tridion, được cấu hình như một quản trị viên, và đã được bổ sung cho người dùng Mạo danh trong "SDL Cấu hình Trình quản lý nội dung Tridion "snap-in.

Các lỗi tôi nhận được như sau:

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> 

Có ai có bất kỳ manh mối để những gì tôi đang làm sai? Cảm ơn bạn trước!

Trả lời

11

Dưới đây là một số điều cần hiểu khi nói đến mạo danh & Tridion ...

  • Người dùng thực hiện mã không nên có quyền truy cập vào Tridion.
  • Người dùng thực hiện mã phải được định cấu hình là "Người dùng mạo danh" hợp lệ
  • Người dùng mà mã mạo danh phải là người dùng Tridion hợp lệ.

Nếu tất cả 3 điều kiện đó đều đúng, mạo danh sẽ hoạt động.

Bằng cách thực hiện mã, tôi có nghĩa là tài khoản Windows mà mã đang được thực thi. Nếu tài khoản này có quyền truy cập Tridion, bạn KHÔNG cần sử dụng mạo danh.

Hy vọng điều này sẽ hữu ích.