Selling digital products is also possible with Dynamicweb eCommerce. You basically create products and attach files from protected folders.
To download a file, the customer must be logged in.
However, this solution is not totally secure, as file permissions is not set for each customer.
If you need to set permissions for each customer and limit the number of downloads etc. you probably need some custom extension.
You need some custom code for that. What you probably need to do is store your downloadable files outside the webroot on your server (so they cannot be accessed through the URL of the website. You could use a custom product field to store the path to the corresponding file on product level.
On ordering you could generate a unique key like a GUID and store this GUID in a seperate table containing the GUID, the product purchased (or the path to the downloadable file) and a date/time untill which the code is valid (like an hour or 2 days) and a field which indicated if the code has been used already (if you want is downloaded only once).
On OrderComplete you could generate an email (or do it on the succes page) with a link to a custom page (aspx or webservice) which streams the file based on the GUID which you can pass as a querystring. On this page you check if the GUID is still valid and check if the stream is completed to mark the GUID as used (if you want this).