public SavoniaUserObject FindUser(string username) { var de = FindUserByUsername(username); if (null == de) { return(null); } SavoniaUserObject su = new SavoniaUserObject(); su.DisplayName = de.Properties["displayName"][0].ToString(); su.Path = de.Path; su.Dn = de.Properties["distinguishedName"][0].ToString(); su.Email = de.Properties["mail"][0].ToString(); su.Title = de.Properties["title"][0].ToString(); su.Username = de.Properties["samaccountname"][0].ToString(); // user enabled/disabled state is in UserAccountControl property // UserAccountControl == number --> 0x02 == disabled int userAccountControl = (int)de.Properties["useraccountcontrol"][0]; su.IsEnabled = !((userAccountControl & 0x2) == 0x2); de.Dispose(); return(su); }
public SavoniaUserObject FindUser(string username) { var user = FindUserByUsername(username); SavoniaUserObject su = new SavoniaUserObject(); su.DisplayName = user.DisplayName; su.Dn = user.DistinguishedName; su.Email = user.EmailAddress; su.IsEnabled = user.Enabled.GetValueOrDefault(); su.Path = ((System.DirectoryServices.DirectoryEntry)user.GetUnderlyingObject()).Path; su.Title = user.Title; su.Username = user.SamAccountName; user.Dispose(); return(su); }
public void UpdateUser(SavoniaUserObject user) { if (null == user) { return; } var de = FindUserByUsername(user.Username); // voisi tehdä tarkastelun onko tieto muuttunut... // ja muokata vain muuttuneet tiedot jne. // esimerkki päivittää vain nimikkeen (title) de.Properties["title"].Value = user.Title; de.CommitChanges(); de.Dispose(); }
public void UpdateUser(SavoniaUserObject user) { // taerkista syöte if (user == null || string.IsNullOrEmpty(user.Username)) { //viallinen syöte --> heitä virhe throw new ArgumentNullException(nameof(user)); } var adUser = FindUserByUsername(user.Username); if (adUser == null) { throw new ArgumentException($"User \"{user.Username}\" not found on AD"); } //päivitetään ad-objektin tiedot adUser.Title = user.Title; //+muut //tallennetaan muutokset adUser.Save(); }