C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[10998] Re:ASP에서 만든 세션을 ISAPI에서 읽을 수 있을까요 ?
에보니.^ㅅ^ [mortalpain] 1135 읽음    2001-09-12 19:09
asp 나 isapi 는 근본적으로 cgi 즉 웹 브로커라고 볼수있슴다.

혼용해서 쓴다고 뭐 잘못될 것은 없지만 모든 것을 다 구현해 내기란 참으로 힘듭니다.

asp 의 Request, Response 객체는 빌더에서는 TWebRequest, TWebResponse 객체로 구현이되는데요

프로퍼티나 메소드도 대충 비스 무리합니다.

그밖의 Server, Session, Application 객체의 프로퍼티나 메소드들은 여기저기 흩어져 있어여.

님께서는 차라리 asp에서 못하는 복잡한 일을 isapi를 통해 하시려는 것 같은데...

isapi 보다는 빌더로 asp 오브젝트(액티브 x 컴포넌트)를 만들어 asp 스크립트를 연동해 쓰시는 것이 훨씬

낫습니다.

아 당근 세션도 쓸수 있구여 컴포넌트 상에서여...

=ㅅ=;; 놈은 주로 웹에서의 비즈니스로직 부분을 그렇게 만들어 asp 와 연결해서 쓰는데 넘 훌륭합니다.

asp 스크립트도 되게 간단하게 되구 코드도 엘레간테하게 되어여...

왠만한 책에선 다 나와 있구여 디벨로퍼 가이드에 조금 소개가 되어 있어여...

만드는것도 아주 재밌습니다 케케케 =ㅅ=;;

참 그리고 쿠키는 아래와 같이 만듭니다,

헐 급하게 로그인 브로커를 만들어 봤는데 소슨 알아서 참고하세요..  =ㅅ=;;

//---------------------------------------------------------------------------
#include "LoginBroker.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TWebpool *Webpool;
//---------------------------------------------------------------------------
__fastcall TWebpool::TWebpool(TComponent* Owner)
    : TWebModule(Owner)
{
   String CStr = "Provider=SQLOLEDB;Server=NEANT;Database=IconAsp;UID=ebony;PWD=^ㅅ^";

   DbConn->ConnectionString = CStr;
}
//---------------------------------------------------------------------------
void __fastcall TWebpool::WebpoolMoiAction(TObject *Sender,
      TWebRequest *Request, TWebResponse *Response, bool &Handled)
{
   String ID, Pass;

   switch ( Mode )
   {
      case Check :

          ID   = Request->ContentFields->Values["ID"];
          Pass = Request->ContentFields->Values["PASSWORD"];

          IdentifyBird(ID, Pass);

          if ( Mode == Success )
          {
              Response->Content = "작은새야, 어서와 편히 쉬어라. 쿠키를 먹어라";

              /* 새들을 위해 쿠키를 준비하자.... */
              TStringList *Cookies = new TStringList();
              Cookies->Add("ID=" + ID);
              Cookies->Add("PASSWORD=" + Pass);
              /* 이부분에서 쿠키의 특성을 결정한다... */
             
              Response->SetCookieField(Cookies,NULL,NULL,Now()+1,false);

              /* 2번째가 쿠키의 도메인 3번째는 쿠키의 패스 작은새가 하루동안 먹을량을 주고
                 마지막은 https (SSL) 를 통해 새들에게 쿠키를 줄건지 결정함. true 로 햇슬때 못
                 받아먹는 불쌍한 새들이 있어여... 기본은 false 로 ㅎ해야 아무나 잘 받아먹고
                 뱉는다 -_-;; */

              Cookies->Free();

              /* 과자 먹은 새들은 빌더 새가 되어야지~ 비시비디엔에서 놀아라~ =ㅅ=;; */
              Response->SendRedirect("http://www.borlandforum.com/");
          }
          else
          {
              Response->Content = "이 나쁜 앙마새야! 쿠키안줘~";
          }

          /*
          Response->Content = "하이, 작은 새야 체크를 해보자!";
          */

          break;

      case New   :

          Response->Content = "하이, 작은 새야 새로운 아이디를 주께!";
          break;

      case Default :

          Page->HTMLFile = "C:\\Inetpub\\wwwroot\\AspBroker\\Login.htm";
          Response->Content = Page->Content();
          break;
   }
}
//---------------------------------------------------------------------------
void __fastcall TWebpool::WebModuleBeforeDispatch(TObject *Sender,
      TWebRequest *Request, TWebResponse *Response, bool &Handled)
{
   if ( Request->CookieFields->Count > 0 )
   {

   }

   if ( Request->ContentFields->Count > 0 )
   {
       bool check;

       check = Request->ContentFields->Values["Login"].IsEmpty() ? false : true;

       if ( check )
       {
           Mode = Check;
           return;
       }

       bool add;

       add   = Request->ContentFields->Values["New"].IsEmpty() ? false : true;

       if ( add )
       {
           Mode = New;
           return;
       }
   }

   Mode = Default;
}
//---------------------------------------------------------------------------
void __fastcall TWebpool::IdentifyBird(String ID, String Pass)
{
   Qry->Close();
   Qry->SQL->Clear();
   Qry->SQL->Add("SELECT USERID, USERPW FROM LOGINUSER ");
   Qry->SQL->Add("WHERE USERID = :USERID ");
   Qry->Parameters->ParamByName("USERID")->Value = ID;
   Qry->Open();

   if ( !Qry->Eof )
   {
       String pass = Qry->FieldByName("USERPW")->AsString;

       if ( Pass == pass )
       {
           Mode = Success;
           return;
       }
   }

   Mode = Failure;
}

+ -

관련 글 리스트
10986 ASP에서 만든 세션을 ISAPI에서 읽을 수 있을까요 ? 이점한 959 2001/09/12
10998     Re:ASP에서 만든 세션을 ISAPI에서 읽을 수 있을까요 ? 에보니.^ㅅ^ 1135 2001/09/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.