Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

How can I use classic ASP Session w/ ASP.NET?

Session State

How can I use classic ASP Session w/ ASP.NET?

by  link9  Posted    (Edited  )
Hello all --

I recently stumbled across this article on http://www.eggheadcafe.com and thought it was brilliantly simple and effective. I've cut the relevant part of the code out of the article to post here verbatim, and provided a link to the full article (lest the site go bye-bye, we still get to keep the "good stuff").

Basically, reading directly from asp classic session is not possible through asp.net, but a simple workaround is to pull all session from asp classic, graft it onto a form, submit that form to an asp.net page, and stuff it into asp.net session. Very simple and easy to do.

So, without further ado:
Code:
<TITLE>ASPPage1.asp</TITLE>
<%
' This is the page where we just set some Classic ASP Session Variables
' ASPPage2.asp is where the work is done.
Session("username")="joeblow"
session("email")="joe@blow.com"
Session("userid")=2
Session("DestPage")="Finalpage.aspx"
Server.Transfer("ASPPage2.asp")
%> 
==========================================================================

<TITLE>ASPPage2.asp</TITLE>
<%
' We graf all the session variable names/values and stick them in a form
' and then we submit the form to our receiving ASP.NET page (ASPNETPage1.aspx)...
Response.Write("<form name=t id=t action=ASPNETPage1.aspx method=post >")
For each Item in Session.Contents
Response.Write("<input type=hidden name=" & Item)
Response.Write( " value=" & Session.Contents(item) & " >")
next
Response.Write("</FORM>")
Response.Write("<script>t.submit();</script>")
%>

============================================================================
<TITLE>ASPNETPage1.aspx</TITLE>
<%@ Page language="c#" %>
<script runat=server>
// We iterate through the Form collection and assign the names and values
// to ASP.NET session variables! We have another Session Variable, "DestPage"
// that tells us where to go after taking care of our business...
private void Page_Load(object sender, System.EventArgs e)
{
for(int i=0;i<Request.Form.Count;i++)
{
Session[Request.Form.GetKey(i)]=Request.Form[i].ToString();
}
Server.Transfer(Session["DestPage"].ToString(),true);
}
</script>
==============================================================================

<TITLE>FinalPage.aspx</TITLE>
<%@ Page language="c#" %>
<script runat=server>
// This page is just a "proof of concept page"...

private void Page_Load(object sender, System.EventArgs e)
{ 
Response.Write("Shared Session Variable Names/Values between Classic ASP and ASP.NET:<BR>");
for (int i = 0; i < Session.Contents.Count; i++) 
{ 
Response.Write("Assigned to \"" +Session.Keys[i].ToString()+"\""); 
Response.Write(" Value: "+ Session[i].ToString() +"<BR>");
} 
}
</script>

And the link to the full article (hope it's not broken):
http://www.eggheadcafe.com/articles/20021207.asp

So thanks to the guys at eggheadcafe. And remember: K.I.S.S.!

Happy Coding!
Paul Prewett
Register to rate this FAQ  : BAD 1 2 3 4 5 6 7 8 9 10 GOOD
Please Note: 1 is Bad, 10 is Good :-)

Part and Inventory Search

Back
Top