使用C#更新AD中员工照片的问题

问题描述 投票:0回答:1

我尝试使用下面的代码更新 AD 中的员工照片,但收到一条错误消息:

System.DirectoryServices.DirectoryServicesCOMException:'约束 发生违规。

00002082:AtrErr:DSID-03151EFE,#1:0:00002082:DSID-03151EFE, 问题 1005 (CONSTRAINT_ATT_TYPE),数据 0,Att 160023 (缩略图):len 181708

我已经检查过我可以对员工照片进行修改,因为我正在使用外部工具对我的帐户进行修改。我已经使用这种方法来修改用户的其他字段,例如电子邮件或电话号码,没有任何问题。我认为问题出在将字节值分配给字段之间,但我不确定。谢谢您的合作。

public static void UpdatePhoto(System.DirectoryServices.DirectoryEntry objADAM, string username)
        {
            DirectorySearcher query = new DirectorySearcher(objADAM);

            query.PropertiesToLoad.Add("thumbnailPhoto");
            query.Filter = "(&(objectClass=user)(sAMAccountName=" + username + "))";
            SearchResult result = query.FindOne();

            System.DirectoryServices.DirectoryEntry user = result.GetDirectoryEntry();

            System.IO.FileStream inFile = new System.IO.FileStream("employeePhoto.PNG", System.IO.FileMode.Open, System.IO.FileAccess.Read);
            byte[] binaryData = new byte[inFile.Length]; // Read image into byte array
            int bytesRead = inFile.Read(binaryData, 0, (int)inFile.Length);
            inFile.Close();
            user.Properties["thumbnailPhoto"].Clear();
            user.Properties["thumbnailPhoto"].Add(binaryData); 

            user.CommitChanges();

        }
c# active-directory ldap
1个回答
0
投票

我发现问题了。使用此方法更改照片时,照片大小限制为100KB

© www.soinside.com 2019 - 2024. All rights reserved.