如何保护“hibernate.cfg.xml”文件? (NHibernate的)。它目前位于Web应用程序的路径中,可以通过浏览器查看。
答案 0 :(得分:6)
<configuration>
<system.web>
<httpHandlers>
<add verb="*" path="hibernate.cfg.xml"
type="System.Web.HttpForbiddenHandler"/>
</httpHandlers>
</system.web>
<configuration>
答案 1 :(得分:2)
您的hibernate.cfg.xml应设置为“复制到输出目录:始终复制”在构建时,它会直接复制到输出中。如果您发布您的站点,它将只在您的输出(bin)目录中,因此没有人能够访问它。
答案 2 :(得分:1)
这是一个非常好的问题。
必须有几种方法来保护它。我能想到的是 - 如果你没有在网站上提供XML - 更改针对网站注册的XML的MIME类型,以便它不被提供。
其他解决方案没有直接保护“hibernate.cfg.xml”文件:
1)使用NHibernate节处理程序
在web.config中定义配置2)在代码中配置
3)设置NHibernate以读取扩展名为.config的文件
答案 3 :(得分:1)
它可以存在于bin目录中,并且它受到保护,以及如果您需要修改它,您的应用程序将自动重新启动,因为在bin目录中进行了更改。
修改强>
如果你的nhibernate代码存在于一个单独的类库中,你可能真的想要/必须这样做,这样你就不希望将它的配置与web.config混合(如果在接口之间共享库,则为app.config)
答案 4 :(得分:0)
将NHibernate配置放在web.config中,这样就不会在浏览器中查看了。
答案 5 :(得分:0)
当您发布网站时,首先要做的是删除位于根文件夹中的“hibernate.cfg.xml”文件,因此无需保护它
答案 6 :(得分:0)
将它放在App_Data文件夹中。 App_Data文件夹是ASP.NET Web应用程序中受特殊保护的文件夹,无法通过浏览器从外部访问。我倾向于将所有配置文件放在那里(当然除了web.config)。