Я использую S # arp Architecture 1.6 и внедрил интеграцию Rhino Security согласно
Rhino Security - S # arp Architecture
Я использую последнюю сборку от Rhino.Commons
Мой метод Application_EndRequest содержит
ISession session = NHibernateSession.Current;
Мой ComponentRegister.cs содержит
container.Kernel.Register(
Component.For<IAuthorizationService>()
.ImplementedBy<AuthorizationService>()
.LifeStyle.Is(LifestyleType.Transient),
Component.For<IAuthorizationRepository>()
.ImplementedBy<AuthorizationRepository>()
.LifeStyle.Is(LifestyleType.Transient),
Component.For<IPermissionsBuilderService>()
.ImplementedBy<PermissionsBuilderService>()
.LifeStyle.Is(LifestyleType.Transient),
Component.For<IPermissionsService>()
.ImplementedBy<PermissionsService>()
.LifeStyle.Is(LifestyleType.Transient),
Component.For<IUnitOfWorkFactory>()
.ImplementedBy<NHibernateUnitOfWorkFactory>()
.LifeStyle.Is(LifestyleType.Singleton),
Component.For<Rhino.Commons.IRepository<User>>()
.ImplementedBy<NHRepository<User>>()
.LifeStyle.Is(LifestyleType.Transient)
);
container.AddFacility<FactorySupportFacility>()
.Register(Component.For<ISession>()
.UsingFactoryMethod(() => NHibernateSession.Current)
.LifeStyle.Is(LifestyleType.Transient));
Я также добавил RhinoSecurityPersistenceConfigurer () в соответствии с инструкциями.
Ошибка, которую я получаю при вызове
UnitOfWork.Start()
это
An association from the table Permissions refers to an unmapped class: Rhino.Security.IUser
Кто-нибудь знает, в чем может быть причина этой ошибки?
Кто-нибудь успешно интегрировал Rhino.Security с S # arp Architecture?
Любая помощь будет отличной.
Спасибо
Rich
- Дополнительные детали -
Спасибо за все ответы до сих пор.
Я до сих пор не смог решить эту проблему, поэтому подумал, что добавлю больше деталей.
В моем Global.asax.cs у меня есть
private void InitializeNHibernateSession()
{
NHibernateSession.Init(
webSessionStorage,
new string[] { Server.MapPath("~/bin/SwitchSnapshot.Data.dll") },
new AutoPersistenceModelGenerator().Generate(),
Server.MapPath("~/NHibernate.config"),
null, null, new RhinoSecurityPersistenceConfigurer());
}
RhinoSecurityPersistenceConfigurer:
public Configuration ConfigureProperties(Configuration nhibernateConfig)
{
Security.Configure<User>(nhibernateConfig, SecurityTableStructure.Prefix);
return nhibernateConfig;
}
У меня есть атрибут AuthorizationAttribute, который вызывает
using (UnitOfWork.Start())
Ошибка возникает в NHibernateUnitOfWorkFactory.cs как
sessionFactory = cfg.BuildSessionFactory();