Win8/VS2012 マシンで ASP.NET 2.0 Web アプリケーションを開発しました (ただし、4.0 ではなく .NET2.0 を使用しています)。フォーム認証を使用して、特定のロールの Content/Documents フォルダーに保存されている PDF ファイルなど、多数のフォルダーへの直接アクセスを保護したいと考えています。私の開発マシンでは、以下の web.config ファイルで動作します。PDF の URL を直接入力すると、ログイン ページにリダイレクトされます。
ただし、ソリューション全体を運用サーバー (Windows サーバー 2003R2 sp1、.NET 2 および 4 がインストールされている) にコピーすると、ファイルに直接アクセスでき、フォーム認証が機能しないように見えます。
サーバーでこれを調査するにはどうすればよいですか? 私の設定で何が問題になっていますか?
注: ロールはロール プロバイダーなしでログイン時に割り当てられます (インターネットおよびスタック オーバーフローに関する多くの記事で示されているように)。
注 2: win2003R2 サーバーの IIS 管理ツールで、構成ウィンドウが web.config ファイルにあるものと一致しないことに気付きました。IISマネージャーでWebアプリのプロパティを右クリックし、ASP.NETタブに移動し、構成の編集に移動して、さまざまな場所の承認タブに移動すると、構成ファイルには明らかに拒否*が含まれているのに、許可*のみが記載されているように見えます。そのサーバーでは、このタイプの構成ファイルがサポートされていない可能性があります (ただし、エラーは発生しません)。
事前にThx
ウィム
<?xml version="1.0"?>
<!--
Note: As an alternative to hand editing this file you can use the
web admin tool to configure settings for your application. Use
the Website->Asp.Net Configuration option in Visual Studio.
A full list of settings and comments can be found in
machine.config.comments usually located in
\Windows\Microsoft.Net\Framework\v2.x\Config
-->
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<connectionStrings>
<add name="..." connectionString="..."
providerName="System.Data.SqlClient"/>
</connectionStrings>
<system.web>
<httpRuntime maxRequestLength="102400" executionTimeout="600"/>
<authentication mode="Forms">
<forms name="MYWEBAPP.ASPXAUTH"
loginUrl="member_login.aspx"
protection="All"
path="/"/>
</authentication>
<authorization>
<allow users="*"/>
</authorization>
<customErrors mode="Off"></customErrors>
<compilation debug="true"/>
</system.web>
<location path="Content/Documents">
<system.web>
<authorization>
<allow roles="MEMBER,ADMINISTRATOR"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
<location path="Content/Events">
<system.web>
<authorization>
<allow roles="MEMBER,ADMINISTRATOR"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
<location path="Content/News">
<system.web>
<authorization>
<allow roles="MEMBER,ADMINISTRATOR"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
<location path="Content/PriceChange">
<system.web>
<authorization>
<allow roles="MEMBER,ADMINISTRATOR"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
<location path="Administrator">
<system.web>
<authorization>
<allow roles="MEMBER,ADMINISTRATOR"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
<location path="Member">
<system.web>
<authorization>
<allow roles="MEMBER,ADMINISTRATOR"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
</configuration>