Ejemplo n.º 1
0
 public DomainDataUser(DomainUserInfo domainUserInfo, DomainUserState domainUserState)
 {
     this.UserID        = domainUserInfo.UserID;
     this.UserName      = domainUserInfo.UserName;
     this.Location      = domainUserInfo.Location;
     this.IsBeingEdited = domainUserState.HasFlag(DomainUserState.IsBeingEdited);
     this.Background    = new SolidColorBrush(domainUserInfo.GetColor());
 }
Ejemplo n.º 2
0
        public void InvokeUserRemoved(Authentication authentication, DomainUserInfo domainUserInfo, RemoveInfo removeInfo)
        {
            this.dispatcher.VerifyAccess();

            var domainUser = this.users[domainUserInfo.UserID];
            this.users.Remove(domainUser.ID);
            if (domainUser.IsOwner == true)
                this.users.Owner = null;
            this.OnUserRemoved(new DomainUserRemovedEventArgs(authentication, this, domainUser, removeInfo));
            this.Container.InvokeDomainUserRemovedEvent(authentication, this, domainUser, removeInfo);
        }
Ejemplo n.º 3
0
        public void InvokeUserAdded(Authentication authentication, DomainUserInfo domainUserInfo, DomainUserState domainUserState)
        {
            this.dispatcher.VerifyAccess();

            var domainUser = new DomainUser(this, domainUserInfo, domainUserState);
            this.users.Add(domainUser);
            if (domainUser.IsOwner == true)
                this.users.Owner = domainUser;
            this.OnUserAdded(new DomainUserEventArgs(authentication, this, domainUser));
            this.Container.InvokeDomainUserAddedEvent(authentication, this, domainUser);
        }
Ejemplo n.º 4
0
        public void InvokeUserChanged(Authentication authentication, DomainUserInfo domainUserInfo, DomainUserState domainUserState)
        {
            this.dispatcher.VerifyAccess();

            var domainUser = this.users[domainUserInfo.UserID];
            domainUser.SetDomainUserInfo(domainUserInfo);
            domainUser.SetDomainUserState(domainUserState);
            if (domainUser.IsOwner == true)
                this.users.Owner = domainUser;
            this.OnUserChanged(new DomainUserEventArgs(authentication, this, domainUser));
            this.Container.InvokeDomainUserChangedEvent(authentication, this, domainUser);
        }
Ejemplo n.º 5
0
        public void Set(DomainUserInfo item, DomainUserState domainUserState)
        {
            for (var i = 0; i < this.Count; i++)
            {
                if (this[i].UserID == item.UserID)
                {
                    this[i] = new DomainDataUser(item, domainUserState);
                    return;
                }
            }

            this.Add(new DomainDataUser(item, domainUserState));
        }
Ejemplo n.º 6
0
        public DomainUserDescriptor(Authentication authentication, IDomainUser domainUser, DescriptorTypes descriptorTypes, object owner)
            : base(authentication, domainUser, descriptorTypes)
        {
            this.domainUser = domainUser;
            this.owner      = owner ?? this;
            this.domainUser.Dispatcher.VerifyAccess();
            this.domainUserInfo  = domainUser.DomainUserInfo;
            this.domainUserState = domainUser.DomainUserState;

            if (this.descriptorTypes.HasFlag(DescriptorTypes.IsSubscriptable) == true)
            {
                this.domainUser.DomainUserInfoChanged  += DomainUser_DomainUserInfoChanged;
                this.domainUser.DomainUserStateChanged += DomainUser_DomainUserStateChanged;
            }
        }
Ejemplo n.º 7
0
        public DomainUserDescriptor(Authentication authentication, IDomainUserDescriptor descriptor, DescriptorTypes descriptorTypes, object owner)
            : base(authentication, descriptor.Target, descriptorTypes)
        {
            this.domainUser = descriptor.Target;
            this.owner      = owner ?? this;
            this.domainUser.Dispatcher.VerifyAccess();
            this.domainUserInfo  = domainUser.DomainUserInfo;
            this.domainUserState = domainUser.DomainUserState;

            if (this.descriptorTypes.HasFlag(DescriptorTypes.IsSubscriptable) == true && descriptor is INotifyPropertyChanged obj)
            {
                obj.PropertyChanged += Descriptor_PropertyChanged;
                this.disposeAction   = new Action(() => obj.PropertyChanged -= Descriptor_PropertyChanged);
            }
        }
Ejemplo n.º 8
0
        public static Color GetColor(this DomainUserInfo domainUserInfo)
        {
            if (idToColor.ContainsKey(domainUserInfo.UserID) == false)
            {
                if (emptyColors.Count == 0)
                {
                    emptyColors.AddRange(colors);
                    emptyColors.Remove(AppearanceManager.Current.AccentColor);
                }

                int index = random.Next() % emptyColors.Count;
                idToColor.Add(domainUserInfo.UserID, emptyColors[index]);
                emptyColors.RemoveAt(index);
            }
            return(idToColor[domainUserInfo.UserID]);
        }
Ejemplo n.º 9
0
        private void Descriptor_PropertyChanged(object sender, PropertyChangedEventArgs e)
        {
            if (e.PropertyName != string.Empty)
            {
                var prop1 = sender.GetType().GetProperty(e.PropertyName);
                var prop2 = this.GetType().GetProperty(e.PropertyName);

                if (prop1 != null && prop1.CanRead == true && prop2 != null && prop2.CanWrite == true)
                {
                    var value = prop1.GetValue(sender);
                    prop2.SetValue(this, value);
                }
            }
            else if (sender is IDomainUserDescriptor descriptor)
            {
                this.domainUserInfo  = descriptor.DomainUserInfo;
                this.domainUserState = descriptor.DomainUserState;
            }
            this.NotifyOfPropertyChange(e.PropertyName);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 获取域用户信息
        /// </summary>
        /// <param name="domainUserName"></param>
        /// <returns></returns>
        public static DomainUserInfo GetDomainUserInfo(string domainUserName)
        {
            try
            {
                if (string.IsNullOrEmpty(domainUserName))
                {
                    return(null);
                }

                var userArr   = domainUserName.Split('\\');
                var domain    = userArr[0];
                var loginName = userArr[1];

                var entry  = new DirectoryEntry(string.Concat("LDAP://", domain));
                var search = new DirectorySearcher(entry);
                search.Filter = string.Format("(SAMAccountName={0})", loginName);
                search.PropertiesToLoad.Add("SAMAccountName");
                search.PropertiesToLoad.Add("givenName");
                search.PropertiesToLoad.Add("cn");
                search.PropertiesToLoad.Add("mail");

                var result = search.FindOne();
                if (result != null)
                {
                    var info = new DomainUserInfo
                    {
                        SamAccountName = result.Properties["SAMAccountName"][0].ToString(),
                        GivenName      = result.Properties["givenName"][0].ToString(),
                        Cn             = result.Properties["cn"][0].ToString(),
                        Email          = result.Properties["mail"][0].ToString()
                    };
                    return(info);
                }
            }
            catch (Exception ex)
            {
                LogUtil.WriteException(ex);
            }

            return(null);
        }
Ejemplo n.º 11
0
 private void DomainUser_DomainUserInfoChanged(object sender, EventArgs e)
 {
     this.domainUserInfo = this.domainUser.DomainUserInfo;
     this.Dispatcher.InvokeAsync(this.RefreshAsync);
 }
Ejemplo n.º 12
0
 public DomainUser(Domain domain, DomainUserInfo domainUserInfo, DomainUserState domainUserState)
 {
     this.domain          = domain;
     base.DomainUserInfo  = domainUserInfo;
     base.DomainUserState = domainUserState;
 }
Ejemplo n.º 13
0
 public void SetDomainUserInfo(DomainUserInfo domainUserInfo)
 {
     base.DomainUserInfo = domainUserInfo;
 }
Ejemplo n.º 14
0
 void IDomainServiceCallback.OnUserChanged(SignatureDate signatureDate, Guid domainID, DomainUserInfo domainUserInfo, DomainUserState domainUserState)
 {
     this.InvokeAsync(() =>
     {
         var domain         = this.Domains[domainID];
         var authentication = this.userContext.Authenticate(signatureDate);
         domain.InvokeUserChanged(authentication, domainUserInfo, domainUserState);
     }, nameof(IDomainServiceCallback.OnUserChanged));
 }
Ejemplo n.º 15
0
 public DomainUserEventArgs(Authentication authentication, IDomain domain, IDomainUser domainUser)
     : base(authentication, domain)
 {
     this.domainUserInfo  = domainUser.DomainUserInfo;
     this.domainUserState = domainUser.DomainUserState;
 }