Example #1
0
        public bool Logon(FtpContext context, FtpUser user)
        {
            FtpUser onlineUser = null;

            lock (m_SyncRoot)
            {
                m_DictOnlineUser.TryGetValue(user.UserName, out onlineUser);
            }

            if (onlineUser != null)
            {
                context.User = onlineUser;
                return(onlineUser.IncreaseConnection());
            }
            else
            {
                user.IncreaseConnection();
                context.User = user;

                lock (m_SyncRoot)
                {
                    m_DictOnlineUser[user.UserName] = user;
                }

                return(true);
            }
        }
Example #2
0
        public void RemoveOnlineUser(FtpSession session, FtpUser user)
        {
            FtpUser onlineUser = null;

            lock (m_SyncRoot)
            {
                m_DictOnlineUser.TryGetValue(user.UserName, out onlineUser);
            }

            if (onlineUser != null)
            {
                if (onlineUser.DecreaseConnection() <= 0)
                {
                    lock (m_SyncRoot)
                    {
                        m_DictOnlineUser.Remove(user.UserName);
                    }

                    FtpServiceProvider.UpdateUsedSpaceForUser(user);
                }
            }
        }
 public override void UpdateUsedSpaceForUser(FtpUser user)
 {
     //Do nothing
 }
        public override AuthenticationResult Authenticate(string username, string password, out FtpUser user)
        {
            lock (SyncRoot)
            {
                if (!m_UserDict.TryGetValue(username, out user))
                {
                    return(AuthenticationResult.NotExist);
                }

                if ("*".Equals(user.Password))
                {
                    return(AuthenticationResult.Success);
                }

                if (string.CompareOrdinal(password, user.Password) != 0)
                {
                    return(AuthenticationResult.PasswordError);
                }

                return(AuthenticationResult.Success);
            }
        }
 public override CreateUserResult CreateFtpUser(FtpUser user)
 {
     //Do nothing
     return(CreateUserResult.UnknownError);
 }
 public override bool UpdateFtpUser(FtpUser user)
 {
     //Do nothing
     return(true);
 }
 /// <summary>
 /// Creates the FTP user.
 /// </summary>
 /// <param name="user">The user.</param>
 /// <returns></returns>
 public abstract CreateUserResult CreateFtpUser(FtpUser user);
 /// <summary>
 /// Updates the FTP user.
 /// </summary>
 /// <param name="user">The user.</param>
 /// <returns></returns>
 public abstract bool UpdateFtpUser(FtpUser user);
 /// <summary>
 /// Updates the used space for user.
 /// </summary>
 /// <param name="user">The user.</param>
 public abstract void UpdateUsedSpaceForUser(FtpUser user);
 /// <summary>
 /// Authenticates the specified username and password.
 /// </summary>
 /// <param name="username">The username.</param>
 /// <param name="password">The password.</param>
 /// <param name="user">The user.</param>
 /// <returns></returns>
 public abstract AuthenticationResult Authenticate(string username, string password, out FtpUser user);