我有一个从数据库创建页面路由的应用程序。我的整个站点都使用表单身份验证进行保护,但我需要允许未经身份验证的用户访问这些路由。我不想为web.config中的路由硬编码<location>
标签,因为这将使我无法使用数据库来生成路由。
有人可以帮忙吗?
答案 0 :(得分:4)
谢谢大家。我找到了an answer here
基本上它涉及为每个路由创建一个文件夹,并在其中放入一个允许访问的web.config文件。这种方法需要与将RouteExistingFiles设置为false相结合,以便路由不会与文件夹混淆。
答案 1 :(得分:1)
为什么不直接在XML中进行修改,而不是使用强类型配置类?
这是一个缩写代码片段,用于演示我的一些代码中的概念,即在machine.config中进行性能IIS调优。但是,其他XML配置文件的主体是相同的。您只需创建适当的XPath语句即可完成所需的操作。
XmlDocument machineConfigFile = new XmlDocument();
machineConfigFile.Load(MachineConfigPathString);
XmlNode autoConfig = machineConfigFile.SelectSingleNode(@"/configuration/system.web/processModel/@autoConfig");
autoConfig.Value = "false";
machineConfigFile.Save(MachineConfigPathString);
保存后,XmlDocument对象将保留所有其他未更改的文档节点。非常便利。它非常适合修改machine.config。我能看到的唯一可能的问题是,当您将更改保存到web.config时,您的应用程序可能会重置。因此,在安全的环境中使用web.config的备份进行测试,以防重置导致任何不良后果!
答案 2 :(得分:0)
我找到了this MSDN link给你。我没有发现你是否可以这样修改运行服务器实例的配置。
答案 3 :(得分:0)
您是否考虑过以不同方式诋毁您的网站安全?让站点的一部分允许未经身份验证的访问,而部分则不允许。我正在“假设”(糟糕)您正在使用MVC,因为您正在描述路由 - 这对于MVC和传统的Web表单应用程序来说都非常容易。