c#对FIM中字符串的引用

本文关键字:引用 字符串 FIM | 更新日期: 2023-09-27 18:07:10

我正在为微软身份管理器(FIM/MIM)编写规则扩展,并且有一个问题。我想要的:我有一个属性"管理器"这是对用户管理器的引用。我需要寻找这个属性,并在MS AD中填充另一个属性与管理器的帐户名称。我有一个这样的代码,必须工作,但我得到错误

系统。InvalidOperationException:无法访问属性管理器。在MV对象上不能访问引用值。在Microsoft.MetadirectoryServices.Impl.AttributeImpl.get_Value ()在Mms_ManagementAgent_HRExt.MAExtensionObject.Microsoft.MetadirectoryServices.IMASynchronization。MapAttributesForImport(String FlowRuleName, CSEntry CSEntry, MVEntry MVEntry)在C:...... hext .cs:第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;

c#对FIM中字符串的引用

确保您在依赖项中添加了MAnagerID。你可以这样做:

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

谢谢