Я не уверен, почему это сложно, даже если пользователь выходит из системы.
Сессия запускается при входе в систему, идентификатор сессии назначен.
Пользователь начинает загрузку файла с информацией об идентификаторе сеанса в имени файла.
например session_id_user_name.DAT
Пользователь выходит из системы
Файл завершен, фоновый процесс на хосте идентифицирует информацию на основе идентификатора сеанса, перемещает файл в местоположение.
Пользователь снова входит в систему
Файл распознан и привязан к учетной записи.
Безопасность не является проблемой, поскольку файловый поток все еще находится в процессе с момента его запуска. Информация о сеансе может быть сериализована и десериализована после того, как пользователь снова войдет в систему. В любом случае поток файлов может выполняться полностью без присмотра.
Возможно, я упростил это, но это кажется простым.