5

私は 2 つのサブ プロジェクトを使用するアプリケーション アーキテクチャを開発しています: a) asp.net Web アプリケーション (ユーザー インターフェイスとビジネス ロジックをカバー) と b) クラス ライブラリ。(データアクセス層をカバーしています)

システム ユーザーが正常にログインすると、ユーザー情報がセッション オブジェクトに保存されます。

私が直面している問題は、クラス ライブラリ プロジェクト (データ アクセス レイヤー) でそのセッション オブジェクトにアクセスしようとすると、常に null が返されることです。

クラス ライブラリ プロジェクトのセッション オブジェクトにアクセスする必要があるのは、私の場合、各ユーザーがデータベース アクセス用に独自のユーザー名とパスワードを持っているためです (セキュリティ上の理由から)。

では、クラス ライブラリ プロジェクトでセッション オブジェクトを読み書きするにはどうすればよいですか

4

5 に答える 5

10

オブジェクトを使用しSystem.Web.HttpContext.Current.Sessionます。

于 2012-08-13T08:46:20.120 に答える
5

まず第一に、Peri が正しく気付いたように、ユーザーごとに別々のデータベース ログインを使用することが良いアイデアであるかどうかを再考する必要があります。接続はかなり高価です)。

本当に別々のデータベース ユーザーを保持したい場合は、データ アクセスからセッションを抽象化するためのインターフェイスを作成します。

public interface ILoginDataService
{
   LoginData Current { get; }
}

また、実装により、セッションからログイン データが渡されます。このようにして、データアクセスロジックでセッションへのセッション依存関係がなくなります-したがって、よりテストしやすくなり、懸念を分離します。

于 2012-08-13T08:57:13.447 に答える
0

セッションを使用する ASP.Net アプリケーションを使用しています。関数に [WebMethod(EnableSession = true)] を使用して、app_code ファイルでアクセスできます。これがあなたの問題かどうかはわかりません。メソッドで (EnableSession = true) を削除すると、セッション値も null として直面しました。

于 2020-01-14T08:53:17.280 に答える