Entwickler-Ecke

Internet / Netzwerk - Sessions in IntraWeb richtig nutzen


pascalsv - So 12.11.06 10:05
Titel: Sessions in IntraWeb richtig nutzen
Guten Morgen!

Ich habe Probleme beim Session-Handling in IntraWeb. IntraWeb bietet ASession an, um Variablen abzulegen, jedoch habe ich keinen Weg gefunden, ASession eigene Variablen anzuhängen.

Hier eine veränderte Unit ServerController:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
unit ServerController;

interface

uses
  SysUtils, Classes, IWServerControllerBase, IWBaseForm, HTTPApp,
  // For OnNewSession Event
  UserSessionUnit, IWApplication, IWAppForm, uDatenmodul;


type
  TIWServerController = class(TIWServerControllerBase)
    procedure IWServerControllerBaseNewSession(ASession: TIWApplication; var VMainForm: TIWBaseForm);
  public

  private
  end;

implementation
{$R *.dfm}

uses
  IWInit;

function UserSession: TIWUserSession;
begin
  Result := TIWUserSession(WebApplication.Data);
end;

procedure TIWServerController.IWServerControllerBaseNewSession(
  ASession: TIWApplication; var VMainForm: TIWBaseForm);
begin
  ASession.Data := TIWUserSession.Create(nil);
  UserSession.SessionDatenmodul := TfDatenmodul.Create(self);
end;


initialization
  TIWServerController.SetServerControllerClass;

end.

Man sieht, dass ich mein Datenmodul der UserSession angehängt habe. Dies ist eine eigene Klasse, siehe:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
unit UserSessionUnit;

interface

uses
  IWUserSessionBase, SysUtils, Classes, uDatenmodul, IdBaseComponent,
  IdComponent, IdTCPConnection, IdTCPClient, IdMessageClient, IdSMTP;

type
  TIWUserSession = class(TIWUserSessionBase)
  private
    { Private declarations }
  public
    { Public declarations }
    User: string;
    Password: string;
    Last_Login: TDateTime;
    Login_Tries: integer;
    Admin: Boolean;
    SessionDatenmodul : TfDatenmodul;
  end;

implementation

{$R *.dfm}

end.

Leider schafe ich keinen Zugriff auf beide Session-Klassen, weder auf ASessions, noch auf UserSession. Kann mir einer bitte erklären, wie das Session-Handling bei IntraWeb überhaupt funktioniert, wie ich eigene Variablen hinzufügen kann und wie ich es schaffe, auf diese Variablen in allen Forms zuzugriefen?

Vielen Dank, I'm totally stuck!

Schönen Sonntag noch,

Pascal