HI,
Я реализую пользовательский поставщик ролей в своем приложении 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>();
// Затем я фильтрую и так далее
}
Но когда эта функция вызывается, я всегда получаю сообщение об ошибке, что сеанс NHibernate закрывается.Я отладил исходный код nhibernate, и оказалось, что сессия здесь имеет другой guid, чем сессия в моих контроллерах (я также использую ASP.NET MVC).И эта конкретная сессия уже закрыта к тому времени, когда я здесь приеду.Я не знаю, кто закрывает это.Я знаю, что он запускается, когда приложение запускается, и только потом.
Кто-нибудь знает, что я делаю неправильно?Я хочу все еще использовать Nhibernate в этом провайдере, но больше не получаю ошибку.Спасибо