你好,
我正在我的 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 会话已关闭。我调试了休眠源代码,结果发现这里的会话与我的控制器中的会话有不同的 guid(我也在使用 ASP.NET MVC)。当我到达这里时,这个特定的会议已经结束。不知道谁关了 我知道它是在应用程序启动时启动的,然后才启动。
有谁知道我做错了什么?我仍想在此提供程序中使用 Nhibernate,但不再收到错误消息。谢谢