2011-09-22 82 views
1

我將NHibernate會話附加到WCF Web服務中的操作上下文,該服務允許我在處理每個操作(服務實例上下文是每次調用)期間訪問會話對象。使用WCF和NHibernate進行自定義身份驗證

該服務使用UserNamePasswordValidator實現自定義認證,但不幸的是,在請求被認證之前,OperationContext.Current始終爲空(可能是設計)。

我的問題是,如果我無法通過OperationContext.Current獲取會話,應如何在Validate(string userName,string password)方法上設置NHibernate會話?其他窺視器如何做到這一點?

在此先感謝。

回答

0

在驗證器中使用單獨的會話=通過會話工廠創建新會話。安全處理和設計操作處理之間沒有共享存儲。他們甚至應該運行不同的線程。您應該遵循此設計,不要在安全處理和操作處理之間共享會話和加載對象。

+0

感謝您的確認。 – Simian