asp.netから従来のaspアプリケーションにユーザー名の値を渡そうとしています。しかし、ASPページが出てきたら、私は値を見ません。セッション変数を渡すための良いリンクがあれば、ここに投稿してください。私は複数のものを試しましたが、成功しません。aspxからaspへのセッション値の受け渡し
public static object Get(string name)
{
HttpContext context = HttpContext.Current;
object value = null;
String[] cookies = context.Request.Cookies.AllKeys;
for (int i = 0; i < cookies.Length; i++)
{
HttpCookie cookie = context.Request.Cookies[cookies[i]];
if (cookie.Name.StartsWith("ASPSESSION"))
{
System.Uri uri = context.Request.Url;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri.Scheme + "://" + uri.Host + ":" + "5500" + "/FinalPage.asp?mode=get&name=" + name);
request.Headers.Add("Cookie: " + cookie.Name + "=" + cookie.Value);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
System.Text.Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
StreamReader readStream = new StreamReader(responseStream, encode);
value = readStream.ReadToEnd();
response.Close();
readStream.Close();
break;
}
}
return value;
}
public static void Set(string name, object value)
{
HttpContext context = HttpContext.Current;
String[] cookies = context.Request.Cookies.AllKeys;
for (int i = 0; i < cookies.Length; i++)
{
HttpCookie cookie = context.Request.Cookies[cookies[i]];
if (cookie.Name.StartsWith("ASPSESSION"))
{
System.Uri uri = context.Request.Url;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri.Scheme + "://" + uri.Host + ":" + "5500" + "/FinalPage.asp?mode=set&name=" + context.Server.UrlEncode(name) + "&value=" + context.Server.UrlEncode(value.ToString()));
request.Headers.Add("Cookie: " + cookie.Name + "=" + cookie.Value);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
break;
}
}
}
protected void btnSEssion_Click(object sender, EventArgs e)
{
HttpContext context = HttpContext.Current;
System.Uri uri = context.Request.Url;
//Get("UserName");
Set("UserName", UserName);
Response.Redirect(uri.Scheme + "://" + uri.Host + ":" + "5500" + "/FinalPage.asp");
}
ASPページ
Response.Write("This is FinalPage.asp<BR>")
Response.Write "Shared Session Variable Names/Values between ASP.NET and classic ASP:<BR>"
Dim strMode, strName, strValue
Response.Write "1<BR>"
If Request.ServerVariables("REMOTE_ADDR") = Request.ServerVariables("LOCAL_ADDR") Then
Response.Write "2<BR>"
strMode = Request.QueryString("mode")
Response.Write strMode
Response.Write "3<BR>"
strName = Request.QueryString("name")
Response.Write strName
Response.Write "4<BR>"
If strMode = "get" Then
Response.Write(Session(strName))
ElseIf strMode = "set" Then
strValue = Request.QueryString("value")
Session(strName) = strValue
End If
End If
%>
あなたは何とかこれらを単一のアプリケーションとして作ったことがありますか?別々のアプリケーションであれば、セッションは別々のセッションになります。要求の値をクエリ文字列値またはPOST値などの別のアプリケーションに含めることによって、 "値を渡します"。 – David
今はちょうどテスト中です。 1つは従来のASPにあり、もう1つはasp.netであるため、別々のアプリケーションになります。 – Anisha
これを行う方法は間違いありませんが、私はそれらが簡単ではないと思います。私が過去に行ったことは、 "セッション転送"タイプのページがありました。ここでは、.netセクションから古典的なaspセクションに変換するとき、あなたはどこかで(私はデータベースを使用して)セッション情報を記録する必要がありますセッション転送は、他の「セッション」から保存されたトークンを介してセッションを確立し、そのトークンに基づいて保存されたセッション情報を引き出す。 – Kritner