HI、asp.netカスタムロールプロバイダNHibernateのエラー
私はNHibernateのアプリケーション でカスタムロールプロバイダを実装しています私はNHibernateのセッションにアクセスしたい時はいつでも、私は呼んでリポジトリを持っています。
は、だから私の役割プロバイダは、私はその後、フィルタリングと//
public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config) {
base.Initialize(name, config);
Repository = new Repository();
}
は、その後、私は
public override string[] GetRolesForUser(string username) {
var users = Repository.QueryAll<Users>();
を上書き自体を初期化するときに
}
しかし、この関数が呼び出されたI上NHibernateセッションが閉じているというエラーが常に出ます。 私はnhibernateのソースコードをデバッグしました。そして、ここのセッションは私のコントローラのセッションとは異なるGUIDを持っていることが分かりました(私もASP.NET MVCを使っています)。 このセッションは私がここに来る頃に閉鎖されています。 誰がそれを閉じるのか分かりません。私はそれがアプリケーションが起動したときに開始されることを知っています。
誰かが私が間違っていることを知っていますか? このプロバイダでNhibernateを使用したいが、それ以上エラーは発生しない。 ありがとうございました
あなたのセッション管理戦略は何:
は、私はこの代わりに入れコンストラクタ完全 を削除? –
私はapplication_startでセッションファクトリを開始し、リポジトリコンストラクタでCureentセッションを取得します。 – Para
いつ、どこでセッションを開いたり閉じたりするのですか? –