HALLO,asp.net benutzerdefinierte Rolle Anbieter nhibernate Fehler
ich einen benutzerdefinierten Rollenanbieter in meiner nhibernate Anwendung bin der Umsetzung Ich habe ein Repository, das nenne ich, wenn ich die nhibernate Sitzung zugreifen möchten.
Also, wenn meine Rolle Provider initialisiert sich
public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config) {
base.Initialize(name, config);
Repository = new Repository();
}
Dann überschreiben ich
public override string[] GetRolesForUser(string username) {
var users = Repository.QueryAll<Users>();
// ich dann filtern und so weiter
}
Aber wenn diese Funktion ich rief Es wird immer ein Fehler angezeigt, dass die NHibernate-Sitzung geschlossen ist. gedebuggt ich die nhibernate Quellcode und es stellt sich heraus, dass die Sitzung hier eine andere guid hat, dass die Sitzung in meinem Controller (I auch ASP.NET MVC verwende). Und diese bestimmte Sitzung ist zu der Zeit geschlossen, die ich hier bin. Ich weiß nicht, wer es schließt. Ich weiß, dass es gestartet wird, wenn die Anwendung startet und nur dann.
Hat jemand eine Idee, was ich falsch mache? Ich möchte immer noch Nhibernate in diesem Anbieter verwenden, aber den Fehler nicht mehr erhalten. Danke
was ist Ihre Session-Management-Strategie:
ich den Konstruktor ganz ich in diesem stattdessen setzen gelöscht? –
beginne ich eine Sitzung Fabrik auf Application_Start und ich erhalte die cureent Sitzung im Repository Konstruktor – Para
Ich meine, wann und wo tun Sie öffnen und schließen Sitzungen? –