Also, dynamic connection strings are covered in chapter 7 of NHibernate 3.0 Cookbook. https://www.packtpub.com/nhibernate-3-0-cookbook/book<http://jasondentler.com/blog/2009/11/authentication-impersonation-and-dynamic-nhibernate-connection-strings/>
<https://www.packtpub.com/nhibernate-3-0-cookbook/book>and my blog: http://jasondentler.com/blog/2009/11/authentication-impersonation-and-dynamic-nhibernate-connection-strings/ On Thu, Oct 14, 2010 at 10:25 AM, Oscar Orduz Acosta <[email protected]>wrote: > Hello CompuFit: > > I don't know if this > http://nhforge.org/wikis/howtonh/dynamically-change-user-info-in-connection-string.aspx > can > help you > > Oscar > > 2010/10/14 CompuFit <[email protected]> > > Hey, >> >> I have this project where a user must log in into his account and then >> they can create contacts in their database. >> There is 1 global connectionstring > for checking if the user is >> valid. >> When the user is valid, it has its own connectionstring. >> >> Example: >> User ID=sa;Password=test;Data Source=db_general;Initial >> Catalog=database > general connectionstring >> User ID=sa;Password=test;Data Source=db_user1;Initial Catalog=database >> > connectionstring for user 1 >> User ID=sa;Password=test;Data Source=db_user2;Initial Catalog=database >> > connectionstring for user 2 >> >> For now I use only 1 connectionstring. Like this: >> In the hibernate.cfg;xml >> <?xml version="1.0" encoding="utf-8" ?> >> <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> >> <session-factory> >> <property >> name="connection.driver_class">NHibernate.Driver.SqlClientDriver</ >> property> >> <property name="connection.connection_string">User >> ID=sa;Password=test;Data Source=db_general;Initial Catalog=database</ >> property> >> <property name="adonet.batch_size">10</property> >> <property name="show_sql">true</property> >> <property name="dialect">NHibernate.Dialect.MsSql2008Dialect</ >> property> >> <property name="command_timeout">60</property> >> <property >> >> name="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, >> NHibernate.ByteCode.LinFu</property> >> <property >> >> name="connection.provider">NHibernate.Connection.DriverConnectionProvider</ >> property> >> </session-factory> >> </hibernate-configuration> >> >> Getting data, for example: >> CtInfo.cs > contact >> public static CtInfo GetById(int? pId) >> { >> using (ISession session = SessionHelper.OpenSession()) >> { >> return session.Get<CtInfo>(pId); >> } >> } >> >> SessionHelper.cs: >> >> private static ISessionFactory _sessionFactory; >> private static ISessionFactory SessionFactory >> { >> get >> { >> if (_sessionFactory == null) >> { >> Configuration config = new >> Configuration().Configure(); >> config.AddAssembly(typeof(CtInfo).Assembly); >> _sessionFactory = config.BuildSessionFactory(); >> if (_sessionFactory == null) >> throw new InvalidOperationException("Could not >> build SessionFactory"); >> } >> return _sessionFactory; >> } >> } >> public static ISession OpenSession() >> { >> ISession session = SessionFactory.OpenSession(); >> if (session == null) >> throw new InvalidOperationException("Cannot open >> session"); >> >> return session; >> } >> >> The connectionstring is automatically given to SessionFactory. Do I >> need to create a new SessionFactory for each user?? Or is there a >> better way? >> Like something like this >> >> public static CtInfo GetById(int? pId, string pConnectionString) >> { >> //give connectionstring to session factory?? >> >> >> Thanks in advance. >> CompuFit. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "nhusers" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]<nhusers%[email protected]> >> . >> For more options, visit this group at >> http://groups.google.com/group/nhusers?hl=en. >> >> > -- > You received this message because you are subscribed to the Google Groups > "nhusers" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<nhusers%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/nhusers?hl=en. > -- You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.
