Autor Beitrag
pascalsv
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 133

Win XP Prof. SP2 / Windows 7
Visual Studio 2008 / Silverlight 3 / Silverlight 4 Beta
BeitragVerfasst: So 12.11.06 10:05 
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:
ausblenden volle Höhe 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:
ausblenden 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