2

私は IntraWeb に不慣れで、問題があります。ログインフォームを実装するために、ユーザーセッションにデータセットを保存しました。しかし、データセットにアクセスすると、アクセス違反エラーが発生します。Useression が作成されていないことがわかりました。Intraweb Documentary では、Usersession は ServerController によって自動的に作成されると言われているため、少し混乱しています。

私はこのようにデータセットにアクセスします(それぞれしたいです) UserSession.Dataset.open;

Rad Studio XE5 に含まれている IntraWeb Trial を使用しています。それが問題かもしれませんか?これが問題ではない場合、Usersession を手動で作成するにはどうすればよいですか?

どうもありがとうございました

[13.4.16 を編集]

問題は、私が使用した評価版でした。フルバージョンをインストールした後、私の問題は消えました。別のパラメーターを追加して、Usersession.create プロシージャーを変更しました。したがって、同じ問題がある場合は、必ず実際のバージョンを使用してください。すべての回答に感謝します

4

3 に答える 3

0

コメントだけを追加してみましたが、どうやらそれにはもっとポイントが必要なようです。答えは RBA からの応答を調べればわかりますが、短い形式は次のとおりです。

IW は、ユーザー セッションを自動的に作成および管理します。ただし、TIWUserSession はその一部にすぎません。セッションに独自のデータを含めるには、TIWUserSession を作成し、それをセッションの .Data として追加します。IWServerControllerBaseNewSession では、次を使用してこれを行います。

  ASession.Data := TIWUserSession.Create(nil, ASession);

プロシージャの ASession パラメータは、IW によって管理されるセッションであることに注意してください。

TIWUserSession にアクセスするには、ServerController でプロシージャを作成します。

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

インターフェイス セクションでそのプロシージャを公開します。

ダン

于 2016-04-10T05:18:46.527 に答える
0

「間違った問題を解決している」のではないかと思いました。

ログインフォームを実装していたときにこれが発生したことを示しました。また、WServerControllerBaseNewSession() で設定されたブレークがヒットしなかったことも指摘しました。

ServerController で、「AuthBeforeNewSession」を True に設定していますか? その場合は、False に設定して、動作が変わるかどうかを確認します。

ダン

于 2016-04-12T03:28:01.313 に答える
0

セッション内で「データ」を作成する必要があります

procedure TIWServerController.IWServerControllerBaseNewSession(
  ASession: TIWApplication; var VMainForm: TIWAppForm);
begin
  ASession.Data := TUserSession.Create;
end;

この例では

TUserSession

ユーザー定義クラスです

type
  TUserSession = class
  public
    UserCount: Integer;
  end;

セッション管理が IW でどのように行われるかを説明するこのチュートリアルを見てください - http://etutorials.org/Programming/mastering+delphi+7/Part+IV+Delphi+the+Internet+and+a+.NET+Preview /Chapter+21+Web+Programming+with+IntraWeb/Building+IntraWeb+Applications/

または、atozed が提供する技術文書を参照してください。

于 2016-04-08T08:56:51.433 に答える