Perobl has asked for the wisdom of the Perl Monks concerning the following question:

Hello Monks!

Website A is written in Perl (LAMP solution stack). Each user is authenticated via a Perl CGI, and CGI::Session is used to invoke a session object complete with session variables and the all-important SID.

Website B is ASP.NET running web applications developed in C# using the .NET framework (WINS solution stack).

I need to send users from website A to website B and potentially back again. I need to make this process seamless for my users. In other words, I can't ask my users to re-authenticate on the WINS stack each time I send them there.

There are probably a few different ways one could make this happen. I am wondering if it could be done this way:

When a user authenticates on website A, I can use SOAP::Lite to call a .NET web service thru a secure connection running on website B. I can then create a new .NET session on WINS via the web service and pass the new (WINS) SID back to website A. The web service is running on the same Windows Server as the ASP.NET web applications (the apps that I eventually may need to send the user to). I think the WINS session state can be be shared between the web service and the web apps via Windows Authentication (so long as the SID is known and passed) - but frankly, I'm not 100% certain this is true.

Back to website A. Whenever the user needs to leave website A to go to website B, I can simply send program control to a sub that adds the WINS SID to the query string (plus the LAMP SID for the potential return trip). I can then re-direct the user to website B.

Once SIDs are defined for each of the two websites, I should be able to send the user back and forth so long as both SIDs are included in the query string... or so goes my theory ...

Can anyone tell me whether or not this will work?

Thank you so much!

Replies are listed 'Best First'.
Re: Sharing Session State (LAMP/WINS)
by JavaFan (Canon) on Mar 05, 2012 at 17:57 UTC
    Can anyone tell me whether or not this will work?
    What happened when you tried? Why do you think this is a Perl question?