Всем привет, есть ли возможность при создание нового пользователя в АД, задать ему поле office? Все нужные мне поля, кроме этого есть в UserPrincipal. Он намного удобнее чем DirectoryEntry, хотел бы спросить у тех кто сталкивался с подобной проблемой как ее решить? Делал расширенный класс где через ExtensionSet устанавливал значение для physicalDeliveryOfficeName ( именно так называется атрибут, если задавать через проперти директриэнтри), но почему то метод Сейв вызывал ошибку. Помогите пожалуйста решить, через DirectoryEntry все работает.
код
using (PrincipalContext PC = new PrincipalContext(ContextType.Domain, "165.1.5.25",
"OU=Test,OU=Users,OU=Domain,dc=test,dc=dom", Environment.UserName, "admintest"))
{
using (UserPrincipal UsrP = new UserPrincipal(PC))
try
{
UsrP.Name = "testuser";
UsrP.SamAccountName = "testuser";
UsrP.GivenName = "Test";
UsrP.UserCannotChangePassword = false;
UsrP.PasswordNeverExpires = true;
UsrP.SetPassword("Qwerty123");
UsrP.Enabled = true;
UsrP.Description = "000";
UsrP.EmailAddress = "testuser@test.ru";
UsrP.VoiceTelephoneNumber = "2222";
UsrP.Surname = "User";
UsrP.DisplayName = "Test User";
UsrP.UserPrincipalName = "testuser@gfx.dom";
UsrP.Save();
UserPrincipal user = UserPrincipal.FindByIdentity(PC, "testuser");
GroupPrincipal group = GroupPrincipal.FindByIdentity(ctx, "TEST_GROUP");
group.Members.Add(user);
group.Save();
}
catch (Exception ex)
{
_Log(ex.Message);
}
}
данный код создает все без ошибки, но стоит изменить класс на UserPrincipalEx, вылетает System.InvalidOperationException: "Сервер не склонен обработать запрос. Сам класс
[DirectoryRdnPrefix("CN")]
[DirectoryObjectClass("Person")]
public class UserPrincipalEx : UserPrincipal
{
public UserPrincipalEx(PrincipalContext context) : base(context)
{ }
public UserPrincipalEx(PrincipalContext context,
string samAccountName,
string password,
bool enabled) : base(context, samAccountName, password, enabled)
{ }
[DirectoryProperty("physicalDeliveryOfficeName")]
public string Office
{
get
{
if (ExtensionGet("physicalDeliveryOfficeName").Length != 1)
return string.Empty;
return (string)ExtensionGet("physicalDeliveryOfficeName")[0];
}
set { ExtensionSet("physicalDeliveryOfficeName", value); }
}
}
Ответ был куда проще, в МС12 пользователь называется user, а не person и изменив наследуемый класс [DirectoryObjectClass("Person")] на [DirectoryObjectClass("User")] я решил свою проблему, спасибо кто пытался помочь. Надеюсь мой ответ поможет избежать таких ошибок)
Виртуальный выделенный сервер (VDS) становится отличным выбором
После нажатия на кнопку, должно содержимое DataGrid должно экспортироваться в XML при помощи сериализации, но происходит ошибка:
Создал свой стиль чекбокса на основе стиля из сети (слайдер)Проблема в том, что если создать этот слайдер с дефолтным параметром IsChecked = true, то при...
Задача такая: есть PSD файл, в нём есть шаблон с текстом и фото, их нужно изменитьТ