Asp.net'den klasik asp uygulamasına bir kullanıcı adı değeri iletmeye çalışıyorum. Ancak ASP sayfası çıktığında herhangi bir değer görmüyorum. Oturum değişkenlerini geçmek için iyi bir link varsa lütfen buraya gönderin. Birden çok denedim ama başarı elde etmedim.Geçiş değerlerini aspx'ten asp'e geçirme
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 sayfa
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
%>
Bunları bir şekilde tek bir uygulama olarak yaptınız mı? Eğer ayrı uygulamalarsa, tabiki ayrı oturumları olacak. İstekte bulunan değeri, ayrı bir uygulamaya, sorgu dizesi değeri veya POST değeri veya bu türden bir şey olarak ekleyerek "bir değer iletirsiniz". – David
Şu anda sadece test ediyorum. Klasik ASP ve diğeri asp.net olduğu için ayrı bir uygulama olacaklar. – Anisha
Bunu yapmanın kesinlikle yolları var, ama onların önemsiz olduğunu düşünmüyorum. Geçmişte yaptığım şey bir "ession transfer" tip sayfası, bir .net bölümünden klasik bir asp bölümüne dönüştürdüğümde, oturum bilgilerinin bir yere (bir veritabanı kullandım) kaydedilmesi gerekiyordu. oturum aktarımı, diğer "oturumdan" kaydedilmiş bir belirteç aracılığıyla bir oturum kurar ve kaydedilen oturum bilgisini bu simgeye göre çeker. – Kritner