我在UserSessionUnit单元文件,申明几个变量,保存用户名之类的变量信息。
procedure TIWUserSession.IWUserSessionBaseCreate(Sender: TObject);
begin
//在会话建立时,取得这些信息,赋给变量。
end;我想问的是,UserSessionUnit单元文件是不是根据客户访问时自动建立?并是唯一的?

解决方案 »

  1.   

    unit UserSessionUnit;{
      This is a DataModule where you can add components or declare fields that are specific to 
      ONE user. Instead of creating global variables, it is better to use this datamodule. You can then
      access the it using UserSession.
    }
    interfaceuses
      IWUserSessionBase, SysUtils, Classes, Sockets;type
      TIWUserSession = class(TIWUserSessionBase)
        procedure IWUserSessionBaseCreate(Sender: TObject);
      private
        { Private declarations }
      public    { Public declarations }
      end;Var
           UserID:String;   //登录的用户名
     
    implementation
    uses DM;
    {$R *.dfm}
    procedure TIWUserSession.IWUserSessionBaseCreate(Sender: TObject);
    begin
    UserID:='admin';
    end;end.
    我的疑问是:如果多用户访问系统时,User的变量会不会受到影响而出现重复交叉等错误。这个单元文件的建立是不是只针对一个会话而建立的?也就是每个用户一个会话,每个用户针对一个单元文件?
      

  2.   

    主控程序为每个会话建立TIWUserSession一个实例,该实例可用TWebApplication.Data访问。