繁体   English   中英

在子级别上使用web.config重定向用户

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM