我在我的WCF webservice中将NHibernate会话附加到操作上下文,这允许我在处理每个操作期间访问会话对象(服务实例上下文是每次调用)。
该服务使用UserNamePasswordValidator实现自定义身份验证,但不幸的是,在请求被验证之前,OperationContext.Current始终为null(可能是设计)。
我的问题是,如果我无法通过OperationContext.Current获取会话,我应该如何在Validate(字符串userName,字符串密码)方法上设置NHibernate会话?其他偷看怎么做?
提前致谢。
答案 0 :(得分:0)
在验证器中使用单独的会话=通过会话工厂创建新的会话。安全处理和操作处理之间没有设计共享存储。他们甚至应该在不同的线程中运行。您应该遵循此设计,并且不要在安全处理和操作处理之间共享会话和加载的对象。