Как лучше всего хранить информацию о строке подключения?
Я бы предпочел не просто хранить пароль БД в файле NHib.config.
Используйте шифрование пароля и / или строки подключения и сохраните зашифрованный пароль / строку подключения в каком-либо файле конфигурации. Затем используйте мой ответ здесь, чтобы добавить значение строки подключения к объекту конфигурации NHibernate после его расшифровки:
Как загрузить настройки приложения в объект NHibernate.Cfg.Configuration?
Как:
nHibernateConfiguration.SetProperty( NHibernate.Cfg.Environment.ConnectionString, Util.Decrypt(encryptedConnectionString));
Обычно вы вводите пароль, если вы подключаетесь к базе данных SQL Server с именем входа SQL, если вы не решите использовать проверку подлинности Windows.
<connectionStrings><add name="MyDbConn1" connectionString="Server=MyServer;Database=MyDb;Trusted_Connection=Yes;"/> <add name="MyDbConn2" connectionString="Initial Catalog=MyDb;Data Source=MyServer;Integrated Security=SSPI;"/> </connectionStrings>
Вы должны заблокировать разрешения / роли для того, что может сделать логин сервера sql.
Если вам нужно использовать логин в стиле сервера sql, вы можете зашифровать пароль следующим образом.
Шифрование строки подключения в web.config
или некоторые другие ссылки ..
http://www.kodyaz.com/articles/Encrypting-in-web-configuration-file.aspx
http://www.codeproject.com/KB/cs/Configuration_File.aspx
http://www.velocityreviews.com/forums/t84120-how-to-encrypt-database-password-in-web-config-file.html
РЕДАКТИРОВАТЬ:
Чтобы использовать строку подключения из элемента connectionstring в файле web.config, это покажет вам ..
http://www.martinwilley.com/net/code/nhibernate/appconfig.html
АЛЬТЕРНАТИВА
использовать fluentnhibernate. :)