2016-09-14 43 views
1

我正在为Microsoft Identity Manager(FIM/MIM)编写规则扩展并遇到问题。 我想要什么: 我有一个属性“管理器”,它是对用户管理器的引用。我需要查找此属性并在MS AD中填入管理员帐户名称中的另一个属性。 我有这样的代码必须工作,但我得到错误c#对FIM中的字符串的引用

System.InvalidOperationException:无法访问属性管理器。 MV对象不可访问的引用值。 at Cms:Mms_ManagementAgent_HRExt.MAExtensionObject.Microsoft.MetadirectoryServices.IMASynchronization.MapAttributesForImport(String FlowRuleName,CSEntry csentry,MVEntry mventry)中的Microsoft.MetadirectoryServices.Impl.AttributeImpl.get_Value() ...... HRExt.cs:line 213

在这一点上

mvMGRemployeeID = mventry["ManagerID"].Value.ToString().ToLower(); 

代码如下:

string mvMGRemployeeID; //temp string that holds the supervisor code 
MVEntry[] mgrSearch; //Collection of MV Etriers used to perform the search forMV object based on the manager employeeID 

if (mventry["ManagerID"].IsPresent) 
{ 
    mvMGRemployeeID = mventry["MAnagerID"].Value.ToString().ToLower(); 
    mgrSearch= Utils.FindMVEntries("employeeID", mvMGRemployeeID, 1); //Is there an object with employeeID = ManagerID 

    if (mgrDNSearch.Length == 1)//if we get only one return (which we should) 
    { 
     if (mgrDNSearch[0]["accountName"].IsPresent) //get the DN of the returned object 
     { 
      csentry["manager"].Value = mgrDNSearch[0]["accountName"].Value.ToString(); 
     } 
    } 
} 
break; 

回答

0

确保您添加管理在依赖关系中的rID。 ,只是你可以这样做:

mvMGRemployeeID = "" + csentry["MAnagerID"].ReferenceValue; 

谢谢