he implementado (ICurrentSessionContext). En este contexto, me inyecte la sesión de NHibernate así que tengo de sesión por la configuración patrón de llamada. Ok, ahora he hecho un interceptor que tiene ID de usuario del usuario registrado actual. Ahora hago esto:cómo autenticar la identificación del usuario de WCF en el contexto de encargo NHibernate NHibernate
public ISession CurrentSession()
{
// Get the WCF InstanceContext:
var contextManager = OperationContext.Current.InstanceContext.Extensions.Find<NHibernateContextManager>();
if (contextManager == null)
{
throw new InvalidOperationException(
@"There is no context manager available.
Check whether the NHibernateContextManager is added as InstanceContext extension.
Make sure the service is being created with the NhServiceHostFactory.
This Session Provider is intended only for WCF services.");
}
var session = contextManager.Session;
AuditLogInterceptor interceptor = new AuditLogInterceptor();
if (session == null)
{
session = this._factory.OpenSession(interceptor);
interceptor.Session = session;
contextManager.Session = session;
}
return contextManager.Session;
}
Mi AuditLogInterceptor toma identificación de usuario, pero no sé cómo (de dónde) para obtener este ID de usuario.