現在、認証されていないすべてのユーザーが私の Web サイトのコンテンツを閲覧できないようにするためのログイン システムを導入しています。ログインできることを確認できました。しかし、私が今直面している問題は、web.config ファイルにあります。検証されていないユーザーがメイン ページ (つまり、www.mysite.com) を表示するのをブロックできます。これにより、index.php が読み込まれます。ただし、ユーザーはログインの目的に反して、ログインせずに www.mysite.com/index.php にアクセスできます。
私の web.config は、メイン ページと、ルートにある .aspx ファイルのみを処理します。以下は私のweb.configコードです。私はしばらくの間解決策を探していましたが、web.config をサイト全体で機能させる方法が見つかりませんでした。また、ルートにあります(私のサイトではワードプレスを使用しています)。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<compilation defaultLanguage="c#" debug="false" />
<customErrors mode="Off" />
<authentication mode="Forms">
<forms
name=".myCookie"
loginUrl="http://www.mysite.com"
domain="mysite.com"
protection="All"
timeout="120"
path="/"
requireSSL="false"
slidingExpiration="true"
/>
</authentication>
<authorization>
<allow roles="AA,BB" />
<deny users="*" />
</authorization>
<machineKey
validationKey="xxxxxxx"
decryptionKey="xxxxxxx"
validation="SHA1"
/>
<sessionState mode="Off" />
</system.web>
<system.webServer>
<defaultDocument>
<files>
<add value="index.php" />
</files>
</defaultDocument>
<rewrite>
<rules>
<rule name="wordpress" patternSyntax="Wildcard">
<match url="*" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
私はこれにかなりの時間を費やしてきたので、助けていただければ幸いです。これは簡単な解決策であるべきだと思います。また、IIS 7 を実行しています。
私の質問を要約すると、ルート URL と .aspx ファイルだけでなく、すべての種類のファイル (php、.txt など) へのアクセスをブロックする web.config ファイルが必要です。
ありがとうございました