示例#1
0
文件: Server.cs 项目: Earth2Me/Aselia
        public override bool LogIn(UserBase user, string account, byte[] password)
        {
            try
            {
                if (!Cache.Accounts.ContainsKey(account))
                {
                    return(false);
                }
                UserSurrogate cache = Cache.Accounts[account];

                if (password.Length != cache.Password.Length)
                {
                    return(false);
                }
                for (int i = 0; i < password.Length; i++)
                {
                    if (password[i] != cache.Password[i])
                    {
                        return(false);
                    }
                }

                cache.LastSeen = DateTime.Now;
                user.Load(cache);
                user.Mask.Account = account;

                if (UsersByAccount.ContainsKey(account))
                {
                    UsersByAccount[account].Add(user);
                }
                else
                {
                    UsersByAccount.Add(account, new List <UserBase>(new UserBase[] { user }));
                }

                user.SetModes(null, "+r" + (user.Level < Authorizations.NetworkOperator ? "" : "o"), string.Empty);
                return(true);
            }
            catch
            {
                return(false);
            }
        }
示例#2
0
文件: Server.cs 项目: Earth2Me/Aselia
        public override UserSurrogate GetRegisteredUser(string account)
        {
            if (UsersByAccount.ContainsKey(account))
            {
                List <UserBase> users = UsersByAccount[account];
                if (users.Count > 0)
                {
                    return(UsersByAccount[account][0]);
                }
            }

            if (Cache.Accounts.ContainsKey(account))
            {
                return(Cache.Accounts[account]);
            }
            else
            {
                return(null);
            }
        }