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;
确保您在依赖项中添加了MAnagerID。你可以这样做:
mvMGRemployeeID = "" + csentry["MAnagerID"].ReferenceValue;
谢谢