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); } }
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);