Quick and dirty solution:
- Create an .ASPX page which accepts parameters via the QueryString.
- Have your .ASPX page do some validation to check that it is your PHP script that is accessing it (i.e. not Joe Public on the internet). Then have it set each of the QueryString parameters as session variables in the normal way.
- When you want your PHP page to be able to set a value in the ASP.NET session, fire off a simple HTTP request to your special ASPX 'bridging page'. It will convert the querystring variables you've passed to it via the QueryString into Session values.
Providing the user maintains the current browser window, when navigating from your PHP script to your ASP.NET site, you should fine that does just the trick...