0
나는 다음과 같은 구성을 구성 내 응용 프로그램의 나머지 부분에 대한Servicestack NHibernate에 인증 리포 없음의 CurrentSessionContext는
var authRepo = new NHibernateUserAuthRepository (_container.Resolve<NHibernate.ISessionFactory>());
_container.Register (Component.For<IAuthRepository>().Instance(authRepo));
public class SessionFactoryManager
{
public ISessionFactory CreateSessionFactory()
{
try {
var autoMap = AutoMap.AssemblyOf<Artist>()
.Where(t => typeof(Entity).IsAssignableFrom(t))
.UseOverridesFromAssemblyOf<LocationMappingOverride>();
return Fluently.Configure()
.Database(PostgreSQLConfiguration.PostgreSQL82.ConnectionString(c => c.FromConnectionStringWithKey("ConnectionString")).AdoNetBatchSize(50))
.Mappings(m => m.AutoMappings.Add(autoMap))
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<ServiceStack.Authentication.NHibernate.UserAuthMap>())
.ExposeConfiguration(TreatConfiguration)
.BuildSessionFactory();
} catch (Exception ex) {
var m = ex;
}
return null;
}
protected virtual void TreatConfiguration(NHibernate.Cfg.Configuration configuration)
{
configuration.SetProperty("generate_statistics", "true");
configuration.SetProperty("current_session_context_class", "thread");
var update = new SchemaUpdate(configuration);
update.Execute(false, true);
}
}
이 모든 일을하지만 난하려고 할 때 NH 인증 리포를 사용하려면 다음을 수행하십시오.
No CurrentSessionContext configured (set the property current_session_context_class)!
누구나 단서가 있습니까?
[업데이트] 나는 다음과 같은 추가 한 내 AppHost.Configure
방법에서
:
this.GlobalRequestFilters.Add ((req, res, vm) => {
CurrentSessionContext.Bind(container.Resolve<NHibernate.ISession>());
});
아무 소용 - 나는 또한 내가 그 처분 얼마나 아무 생각이 없다 : P 또한
을 ISessionFactory가 내 앱의 다른 모든 부분과 같이 주입되면서 혼란 스럽습니다.
그럼 반드시 은일까요?
Arrr 좋아요, 그래서 이것은 DLL에있는 auth stuff 형태로 불려지고 나머지는 제 앱이 필요할 때마다 즐겁게 세션을 만듭니다. 요청/응답 필터에서이 작업을 수행하는 것이 좋습니다. 심지어 인증 용도로만 사용됩니까? – iwayneo
@Ricardo Peres 업데이트를 추가했습니다. – iwayneo