클래식 asp, .NET 및 javascript 간에 변수 값을 공유하려면 어떻게 해야 합니까?

StackOverflow https://stackoverflow.com/questions/114260

문제

나는 IHttpHandler .NET C#에서는 HTML 조각을 클래식 ASP 페이지로 반환합니다.

클래식 ASP 페이지는 다음과 통신합니다. IHttpHandler 기본 http 요청을 통해 ServerXMLHTTP vbscript 또는 JavaScript의 Ajax 호출에서.

이제 vbscript에는 있지만 javascript에는 없는 변수를 .NET 응용 프로그램과 공유하는 방법이 필요합니다.

첫 번째 부분은 클래식 ASP와 .net 간에 변수를 공유하는 것인데, http 요청에 추가하면 되기 때문에 문제가 되지 않습니다.하지만 자바스크립트에서는 변수를 사용할 수 없기 때문에 이 경우에는 이 작업을 수행할 수 없습니다.

저는 .NET 애플리케이션에서 변수를 캐시하고 javascript 호출에 캐시된 버전을 사용할 수 있다는 생각을 했습니다.하지만 이것이 작동하려면 .NET에서 "클라이언트"를 고유하게 식별하는 방법이 필요합니다.

추가하려고했는데 System.Web.SessionState.IRequiresSessionState 내 HttpHandler에 연결하고 SessionId를 사용했지만 HttpHandler에 대한 모든 단일 호출이 새 ID를 얻는 것처럼 보이기 때문에 작동하지 않았습니다.

내가 올바른 생각을 하고 있는 걸까?여기서 내 옵션은 무엇입니까?

도움이 되었습니까?

해결책

ASP 페이지의 서버 측 VB 스크립트에서 변수 값을 저장할 수 있는 페이지에 숨겨진 변수를 갖는 것은 어떻습니까?

그런 다음 Javascript를 사용하여 이 변수를 쿼리하여 Ajax 호출을 통해 Asp.Net 처리기로 보낼 수 있습니다.

다른 팁

쿠키에 값을 넣은 다음 자바스크립트로 읽고 .net 앱에 대한 요청을 보내는 것을 포함하여 모든 작업을 수행할 수 있습니다.

결국 문제에 대한 나의 해결책은 다음과 같습니다.

  1. 일반 ws 요청과 함께 변수를 웹 서비스에 보냅니다.
  2. 웹 서비스의 해시 테이블에 변수 값을 저장하고 숨겨진 html 개체의 해시 키를 클라이언트에 반환합니다(헤드를 사용했습니다). <meta> 그에 대한 요소)
  3. 자바스크립트에서 해당 해시 값을 읽고 이를 헤더 값으로 http 요청에 첨부합니다.
  4. 웹 서비스가 해당 해시키를 확인하면 영구 해시 테이블에서 해당 변수 값을 조회합니다.

최선의 해결책은 아닐 수도 있지만 제 경우에는 잘 작동하는 것 같습니다 ...

쿠키도 추천드려요.데이터베이스에서 값을 로드할 수도 있지만 이는 과잉입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top