2016-03-30 6 views
0

現在、アプリケーションにはルートレベルのweb.configファイルがあり、これはすべての顧客で共有されています。このWeb設定ファイルにはすべての顧客のリダイレクトがあり、このweb.configを1人の顧客に変更するたびに、他のすべての顧客を危険にさらしています。サブレベルでweb.configを使用してユーザーをリダイレクトする

各顧客には、テーマファイルとカスタマイズが保存されている名前のフォルダがあります。この場所は、単一の顧客のみのリダイレクトを含むweb.configファイルにとって理想的な場所です。他のユーザーを危険にさらすことなくいつでも変更できます。

web.configファイルを最下位レベルに配置しようとしたときに、サーバーによって読み取られているように見えますが、何らかの理由で失敗します。ウェブの設定ファイルは非常に小さく、唯一、次のものが含まれます

<?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ファイルを持っており、それは同じように動作することを期待するだけでは不可能だというのが私の疑念を持っていますそれは根のレベルで行います。しかし、それが可能で、あなたが私に試してみるという考えがあるなら、私はそれを感謝するでしょう。

おかげで、 クレイグ

答えて

0

は、それはそれに余分なタッチを追加し、アクセスにあなたがそれをしようと道を解い問題ありません。 :)

あなたはすべての異なるユーザーをどのように扱うのか分かりませんが、何らかのログイン機能があると思います。彼らがログインするときに、将来の使用に必要なセッションクッキーを設定するだけです。私は同様のソリューションを持っており、web.configの代わりにログインするときにセッション変数としてリダイレクトを設定しました。あなたのサブフォルダでは、ログインしたユーザーだけにアクセス許可を与え、他のすべてのユーザーを拒否します。これはこのようなものです。

<authorization> 
    <allow users="John"/> 
    <deny users="*"/> 
</authorization> 

ここで、Johnはフォルダへのアクセスを許可し、他の人へのアクセスを拒否します。

エラー処理に関しては、rootのweb.configにこれがあります。

<system.web> 
    <customErrors mode="RemoteOnly" defaultRedirect="Error/Customerror.html"/> 
</system.web> 

リモートのみのみローカルcomputorに(ないWebサーバー上の)エラーを与え、デフォルトのリダイレクトは、ユーザーが、彼らがアクセス権を持っていないフォルダに取得しようとするときも、起きる任意のカスタムエラーを処理に。これは魅力のように機能し、きちんとしています。

関連する問題