[英]Using web.config on a sub-level to redirect users
该应用程序当前在根级别具有web.config文件,并且该文件在所有客户之间共享。 该Web配置文件具有所有客户的重定向,并且每次我们为1个客户修改此web.config时,都会使所有其他客户面临风险。
每个客户都有一个以他们命名的文件夹,该文件夹存储了他们的主题文件和自定义项。 该位置是web.config文件的理想位置,该文件仅包含该单个客户的重定向,可以在任何时间修改它而不会给其他人带来风险。
我当前尝试将web.config文件放在最低级别,看起来服务器正在读取它,但是由于某种原因它失败了。 Web配置文件非常小,仅包含以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<security>
<requestFiltering>
<fileExtensions>
<remove fileExtension="."/>
<add fileExtension="." allowed="true"/>
</fileExtensions>
</requestFiltering>
</security>
<rewrite>
<rules>
<rule name="test" patternSyntax="Wildcard" stopProcessing="true">
<match url="www.example.com/old_website" />
<action type="Redirect" url="www.example.com/new_website"/>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
我怀疑不可能在如此低的级别上拥有一个web.config文件,并且期望它以与根级别上相同的方式工作。 但是,如果有可能,并且您有一个让我尝试的想法,我将不胜感激。
谢谢,克雷格
解决您尝试访问的方式没有问题,只需为其添加额外的功能即可。 :)
我不知道您如何处理所有不同的用户,但我想您具有某种登录功能。 当他们登录时,只需设置一些您将来可能需要使用的会话cookie。 我有一个类似的解决方案,当他们登录时而不是在web.config中,我将重定向设置为会话变量。 然后,在子文件夹中,仅给已登录的用户访问权限,并拒绝所有其他用户。 看起来像这样。
<authorization>
<allow users="John"/>
<deny users="*"/>
</authorization>
在这里,您允许John访问该文件夹,而拒绝其他任何人的访问。
关于错误处理,我在根目录的web.config中有此内容。
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="Error/Customerror.html"/>
</system.web>
远程仅在本地计算机(而不是Web服务器)上提供错误,并且默认重定向将处理将出现的任何自定义错误,当用户尝试进入他们无权访问的文件夹时也是如此。 这就像一个魅力,整洁。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.