我用websnap写了个用户登录的服务器程序(IE访问),并在其中加入了WebUserList来管理用户名和密码,但我不想将用户信息存放在WebUserList组件中而是放到一个数据库文件中,于是我又加入了Database、Table和Session组件来连接该数据库,但为什么我将Database的connected设置为true,打开网页就看不到登录界面了(用户密码输入框)?如果一开始不连接数据库而是在运行时写Table1.Open,在输入用户密码后并不能跳转到应有的页面,请问该如何解决!!!

解决方案 »

  1.   

    用了一个LoginFormAdapter组件来管理用户登录,并在WebUserList的OnBeforeValidateUser事件中写了如下代码验证用户信息:
    if strings.count>0 then
       Table1.Open;       Table1为用户信息表
       begin
       if  (Table1.FieldByName('User_Name').asstring=strings.Values['UserName'])
       and (Table1.FieldByName('User_Password').asstring=strings.Values['Password']) then
       begin
         UserID:=strings.Values['UserName'];
         handled:=true;
       end
    其中User_Name和User_Password为数据库表中的列,UserName和UserPassword是在LoginFormAdapter组件登录时输入的
      

  2.   

    Table1里面就一条记录吗? 你open后就判断(Table1.FieldByName('User_Name').asstring=strings.Values['UserName'])应该是永远不正确的吧??
    你自己设断点看看能运行下去吗
      

  3.   

    我刚刚又看了下TTable组件的方法说明,有设定检索范围的方法:setrangestart和setrangeend。不过好像如果没用这两个方法来设定范围的话就表示是全表检索啊!!!
      

  4.   

    不要用table,用query,里面通过sql语句来查
      

  5.   

    还是不行,我看了一个帖子的《我按照李维的Web电子商务应用的书上做了一个ISAPI的例子不能运行》帖子如下:
    (((是Delphi和IIS方面的问题??   
        我新建了一个ISAPI/NSAPI   Dynamic   Link   Library   的Web   Server   
    Application工程,   
      然后我在WebModule1中放了TDatabase,   TTable,   TXMLBroker,TSession,   
      TDataSetProvider,   TInetXPageProducer,并设置好了,用的是别名DBDEMOS;   
        
              连接流程如下:   
      Session-》   
      【Database->   
      Table1(选Employee表)->DataSetProvider->XMLBroker->InetXPageProducer】   
        
              然后我在InetXPageProducer中设置并放入了   
      TDataFrom-》【TDataGrid,   TDataNavigator】   
        
              数据都是连接好了的   并且都是打开的。     
      然后我编译了一个dll文件,按照李维书上说的运行,可是提示页面无法显示。HTTP   500   内部服务器错误。我不明白是怎么回事,哪位大侠能帮我啊,是不是要设置IIS   
      的什么东东啊,我已经设置了IIS的属性是让它执行应用程序。并把WebMidas下的所以东西都拷到了执行的虚拟站点目录下了。   我又用了李维上的现成例子运行了,也是同样的事啊。   
        
      系统环境:Window2000   +   Delphi7.0(BDE)+   IIS。)))
    也是我这个问题,他说已经解决了是odbc设置的问题,那该如何设置odbc呢???