J'utilise S # arp architecture 1.6 et ont mis en œuvre l'intégration de sécurité Rhino parS # arp Architecture - Sécurité Rhino (classe unmapped: Rhino.Security.IUser)
Rhino Security - S#arp Architecture
Je suis en utilisant la dernière version de Rhino.Commons
Ma méthode Application_EndRequest contient
ISession session = NHibernateSession.Current;
Mon ComponentRegister.cs contient
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));
J'ai également ajouté RhinoSecurityPersistenceConfigurer() selon les instructions.
L'erreur que je suis recieving à appeler
UnitOfWork.Start()
est
An association from the table Permissions refers to an unmapped class: Rhino.Security.IUser
Est-ce que quelqu'un sait ce que la cause de cette erreur peut être?
Est-ce que quelqu'un a intégré avec succès Rhino.Security avec l'architecture S # arp?
Toute aide serait géniale.
Merci
Rich
- Détails supplémentaires -
Merci pour toutes les réponses à ce jour.
Je n'ai toujours pas été capable de résoudre ce problème, alors j'ai pensé ajouter plus de détails.
Dans mes Global.asax.cs je
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;
}
J'ai un AuthorizationAttribute qui appelle
using (UnitOfWork.Start())
L'erreur est dans NHibernateUnitOfWorkFactory.cs INTERVENUES comme
sessionFactory = cfg.BuildSessionFactory();
Vous devez appeler '' Security.Configure après '' ConfigureNHibernate' mais avant BuildSessionFactory'. Vous devrez faire une petite modification au fichier source 'NHibernateSession' de S # arpArch pour le faire. –