Date and time can be generated very easily from SAS functions and formats.
The right user ID may be a little more difficult. Although the SAS session has a "userID" stored in an automatic macro variable &sysUserID, that will probably be different from the identity of the user at the browser.
I assume each user at a browser will have signed into your system in some way, with a userID that will be stored in the whole environment - somewhere - probably as a macro variable, and possibly as an environment variable. The first is easier to discover. In developing your solution, place this code inside a test SAS program you invoke through the browser : [pre] %put _all_; [/pre] You may need to invoke the program wiith one of the _debug_ options that responds with the SAS log. On that SAS log you should see the name of a macro variable whose value is your userID to the browser application.
Given that name, say &app_user, you can construct a file name like [pre] %let datetimes = %sysfunc( datetime(), IS8601DT) ;
%let name = reportX_for&app_user._at_&datetimes..xls ; [/pre]
If the : generated by the IS8601DT datetime format cause invalid filename problems, either compress out the : symbol with: [pre] %let datetimes =%sysfunc( compress( &datetimes, : )); [/pre]or build a datetime picture format that suits your need better, see
http://support.sas.com/onlinedoc/913/getDoc/en/proc.hlp/a002473467.htm#a000530223 for details of the date and time features you can use to build your preferred picture format.
Good Luck
PeterC