我在c#中开发了用于在AD中创建用户的项目。
我创建了一个用户,我想为这个用户创建一个属性,比如“mobilenumber”。
当我创建时,会出现以下错误。
这是我的代码。
if (userDetails.GetUnderlyingObjectType() == typeof(DirectoryEntry))
{
dEntry = (DirectoryEntry)userDetails.GetUnderlyingObject();
if (User.UsrPassword != null && User.UsrPassword.Trim() != "")
{
if (dEntry.Properties.Contains("mobilenumber"))
{
Console.WriteLine("mobilenumberAttribute:Already created");
dEntry.Properties["mobilenumber"][0] = User.UsrPassword;
dEntry.CommitChanges();
}
else
{
Console.WriteLine("mobilenumber Attribute: Adding");
dEntry.Properties["mobilenumber"].Add(User.UsrPassword);
dEntry.CommitChanges();
}
userDetails.Save();
result = true;
}
}
The requested operation did not satisfy one or more constraints associated with the class of the object. (Exception from HRESULT: 0x80072014)
我该如何解决这个问题?
答案 0 :(得分:2)
创建属性?你的意思是扩展架构?只需将其添加到对象中就无法做到这一点。正如您所见,here,没有“mobilenumber”这样的属性。也许您想要otherMobile
(Phone-Mobile-Other)或mobile
(Phone-Mobile-Primary)?
你想做什么?为什么要在用户对象中保留密码的副本。如果用户更改了它,则不会更新您的副本。如果你需要它以某种方式告知用户,做一些不同的事情,比如让他的主管感兴趣......只是一个想法。