2011-04-27 6 views
0

이 이봐, 내가 생성자에 NHibernate에-세션을 열고 내 자신는 MembershipProvider 있습니다는 MembershipProvider 및 캐싱 (NHibernate에)

public class OwnMembershipProvider : MembershipProvider 
{ 

    protected NHibernate.ISession HibSession; 

    public OwnMembershipProvider() 
    { 
     HibSession = NHibernateTools.OpenSession(); 
    } 
//... 
내가 생성자에 중단 점을 설정하면 내가 알아 낸

을, 그것을 응용 프로그램 시작 중에 한 번만 호출됩니다. 이것은 각 NHibernate-Session이 각 요청에 사용되어 "오, 암호를 변경할 수 없습니다"와 같은 재미있는 일을하기 때문에 두통이 생깁니다. (NHibernate-Session은 ValidateUser()을 호출 할 때 캐시 된 사용자를 반환합니다. 기존 비밀번호).

각 단일 요청에 대해 프레임 워크가 MemberShipProvider를 강제로 재구성하도록하려면 어떻게해야합니까? 아니면 어떻게 다르게해야합니까? 각 방법에 별도의 세션을 열기 모든 계약 및 프로모션 추천 자료 비즈니스 디렉토리 리뷰

답변

0

에 대한

들으 좋은 생각처럼 들린다. 더 나아가 각 HTTP 요청마다 하나의 세션 과 트랜잭션을 연 다음 요청이 끝나면 트랜잭션을 커밋하십시오.

+0

그래, 나도 같은 생각으로 끝났다. 나는 단순히'ValidateUser()'메서드 내에서 새로운 세션을 주문한다. – sl3dg3