MembershipProvider和Caching(NHibernate)

时间:2011-04-27 15:45:35

标签: c# asp.net nhibernate

嘿那里,我有自己的Membership-Provider,我在构造函数中打开一个NHibernate-Session:

public class OwnMembershipProvider : MembershipProvider
{

    protected NHibernate.ISession HibSession;

    public OwnMembershipProvider ()
    {
        HibSession = NHibernateTools.OpenSession();
    }
//...

我想出如果我在构造函数中设置断点,它在应用程序启动期间只调用一次。这让我头疼,因为每个请求使用相同的NHibernate-Session,导致有趣的事情,如“哦,我无法更改我的密码”(NHibernate-Session在调用ValidateUser()时返回缓存用户,它仍然包含旧密码。)

如何强制框架为每个请求重建MemberShipProvider?或者应该如何做到与众不同?

任何tipps的thx

1 个答案:

答案 0 :(得分:0)

在每种方法中打开一个单独的会话听起来是个好主意。更好的是,为每个HTTP请求打开一个会话和事务,然后在请求结束时提交事务。