2013-02-15 2 views
0

У меня есть старая система, которая была разработана не мной, в классическом ASP. У меня есть новая система, разработанная мной в ASP.NETСессия от ASP.NET к классическому asp

Как передать переменную сеанса (не сложные типы, просто строку или int) К этой классической странице ASP? Мне от этого ничего не нужно.

Чтобы добавить гаечный ключ к работам - как я могу «отменить» или передать, если классический сайт ASP находится в другом домене?

Обновление: Невозможно использовать опцию передачи элементов посредством запроса или сохранения его в БД и позволяя классическому ASP читать его из БД.

Спасибо

+0

возможно дубликата [Можно ли разделить состояние сеанса между осиной классикой и asp.net] (http://stackoverflow.com/questions/4751398/is-it-possible-to-share-session-state-between-asp-classic-and-asp-net) – David

+0

Использует вопрос с вопросом? – Andorbal

+0

Правильный andorbal - использование QS не может быть и речи, потому что старая классическая система asp проверяет сеанс на значение, и если он не существует, он делает что-то фанк ... не хочу, чтобы он проходил через funky-раздел :) –

ответ

0

вы можете использовать классическую страницу жереха, которая устанавливает переменный сеанс из, например, параметры сообщения.

затем назовите эту классическую страницу asp со страницы asp.net.

пример (не полный) session.asp:

if session("userIsloggedIn") = true and request.form("act") = "setSessionVar" then 
    session(request.form("name")) = request.form("value") 
end if 

, конечно, это своего рода хак, но мы говорим о классическом осины ...

+0

yeh thats kinda, что я должен был сделать печально .... –

0

у меня было другое направление. Я обменялся состояниями сеанса с помощью файла cookie. Добавление этих методов. Поэтому вместо вызова сеанса напрямую я использую эти методы.

ASP.NET

public static void AddSessionCookie(string key, string value) 
    { 
     var cookie = HttpContext.Current.Request.Cookies["SessionCookie"]; 
     if (cookie == null) 
     { 
      cookie = new HttpCookie("SessionCookie"); 
      cookie.Expires = DateTime.Now.AddHours(12); 
      HttpContext.Current.Response.Cookies.Add(cookie); 
      HttpContext.Current.Request.Cookies.Add(cookie); 
     } 

     HttpContext.Current.Session[key] = value; 
     cookie[key] = value; 
    } 
    public static string GetSessionCookie(string key) 
    { 
     if (HttpContext.Current.Session[key] == null) 
      return string.Empty; 

     string cook = HttpContext.Current.Session[key].ToString(); 
     if (!String.IsNullOrEmpty(cook)) 
     { 
      var cookie = HttpContext.Current.Request.Cookies["SessionCookie"]; 
      if (cookie == null) 
      { 
       cookie = new HttpCookie("SessionCookie"); 
       cookie.Expires = DateTime.Now.AddHours(12); 
       HttpContext.Current.Response.Cookies.Add(cookie); 
       HttpContext.Current.Request.Cookies.Add(cookie); 
      } 
      if (cookie != null) 
       cookie[key] = cook; 

      return cook; 
     } 
     return cook; 
    } 

Тогда для классического

Function AddSessionCookie(key, value) 

    Response.Cookies("SessionCookie")(key)= value 
Response.Cookies("SessionCookie").Expires = DATE + 1 
Session(key) = value 

End Function 

    Function GetSessionCookie(key) 

If Session(key) <> "" Then 
Response.Write(Session(key)) 
ELSEIF Response.Cookies("SessionCookie")(key) <> "" THEN 
Session(key)=Response.Cookies("SessionCookie")(key) 
Set GetSessionCookie = Session(key) 
End If 
End Function 
Смежные вопросы