0
我正在創建一個應用程序(.Net 3.5),以允許用戶在Active Directory中更新其自己的照片和電話號碼。將thumbnailPhoto屬性寫入Active Directory
我使用UserPrincipal類,我已經使用這個example
// Create the "thumbnailPhoto" property.
[DirectoryProperty("thumbnailPhoto")]
public byte[] thumbnailPhoto
{
get
{
if (ExtensionGet("thumbnailPhoto").Length != 1)
return null;
return (byte[])ExtensionGet("thumbnailPhoto")[0];
}
set
{
ExtensionSet("thumbnailPhoto", value);
}
}
我得到的字節數組,並將其與
pictureBoxthumbnail.Image = Image.FromStream(new MemoryStream(userPrincipal.thumbnailPhoto));
寫一個PictureBox延長這顯示圖片,形式上,迄今爲止非常好。當我嘗試寫圖像到Active Directory,我在PictureBox轉換爲字節數組
userPrincipal.thumbnailPhoto = ImageManipulation.imageToByteArray(pictureBoxthumbnail.Image);
public static byte[] imageToByteArray(System.Drawing.Image imageIn)
{
MemoryStream ms = new MemoryStream();
imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
return ms.ToArray();
}
和嘗試,並保存數據,但我得到了以下異常。
System.DirectoryServices.AccountManagement.PrincipalOperationException了未處理
消息=未指定的錯誤
源= System.DirectoryServices.AccountManagement
錯誤碼= -2147467259
我懷疑我的pictureBox到字節數組是錯誤的。有人能夠幫助嗎?
謝謝。
-2147467259 ='0x80004005' =訪問被拒絕 - 確定您有權設置該屬性? –
我可以清除縮略圖。使用ADPhotoEdit作爲我自己,我可以上傳一張新照片。可能是一個權限問題,但。 – Beresford
我不認爲這是許可問題。我希望你調試它,並確保讓我們知道你得到這個錯誤的哪一行。我曾經寫過相同類型的應用程序,並且在嘗試將**用於* MemoryStream *時將代碼放在**中時得到了非常錯誤的代碼。 –