예제 #1
0
        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);
        }
예제 #2
0
        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);
        }
예제 #3
0
        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();
        }
예제 #4
0
        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();
        }