У вас должна быть база данных, где вы храните, какой пользователь купил какой mp3. Загруженные mp3-файлы не должны храниться в общедоступной папке. Сохраните их в другой папке, а затем в http-папке, но убедитесь, что ваш iis имеет доступ к этой папке. Таким образом, никто не может угадать путь к файлу, потому что он не находится под http-корнем.
Используйте страницу загрузки, которая проверяет разрешения на загрузку и только затем отправляет mp3 пользователю с Response.WriteFile(filename)
и правильным MIME-типом и т. Д.
Protected Sub ServeMP3(ByVal f As FileInfo)
Response.Clear()
Response.ContentType = "audio/mpeg3"
Response.AddHeader("content-disposition", "inline; filename=" & f.Name)
Response.WriteFile(f.FullName)
Response.End()
End Sub
Вместо «inline» (потоковая передача и воспроизведение) вы можете использовать «attachment» для принудительной загрузки файла