What I would do is incorporate the PHP session ID into the .asx request. Normally this identifier is stored in a cookie, and passed to PHP on each page request. In this case WMP is not sending a cookie along, so you have no way of knowing whether or not the request is authenticated or not.
When you output the download link for the ASX file, tack on the session identifier as a GET variable:
$download_link = "http://myserver.com/download_asx_file.php?"
$download_link .= "f=$file_id&";
$download_link .= htmlspecialchars(SID);
Now when you call session_start()
at the top of download_asx_file.php
it should find and load your session correctly, and allow you to authenticate as normal.
Note: The SID constant is evaluated to PHPSESSID=12345678
(or whatever that user's session happens to be)