私はS#arp Architecture 1.6を使用しており、RhinoSecurity統合を次のように実装しています。
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アーキテクチャとうまく統合した人はいますか?
どんな助けでも素晴らしいでしょう。
ありがとう
リッチ
-追加の詳細-
これまでのすべての返信に感謝します。
私はまだこれを解決することができなかったので、私はもっと詳細を追加したいと思いました。
私の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();