MVCを統合する従来のASP.Net Webサイトがあります。 MVCの追加とWebForms + MVCサイトのコントローラーアクションへの一般的なアクセスを許可する
<location path="Public">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
:私のような場所を使用して、過去にさまざまなフォルダ、公開を行うことができました
<authorization>
<deny users="?"/>
</authorization>
:私は、web.configファイルで、標準の認証タグでWebフォーム認証を使用しますいくつかのコントローラーをいくつかのコントローラーを完全に公開する必要があります。ただし、web.configのlocationタグを使用してこれを行うことはできません。認証されていない間にアクションのURLに移動しようとすると、ASP.Netはログインページ(web.configで指定)にリダイレクトされます。これらのコントローラアクションのいずれかでAuthorization属性を使用していません。
保護が必要なすべてのWebフォームにセキュリティを侵害する中で、どのようにこれらへのアクセス権を開放しますか?
編集:
私は私が保護したいアクションに[オーソライズ]を使用していますことを明らかにしたいです。私は[承認]属性を使用していない、公共作られ、ログインしていない限り、まだアクセスすることはできませんしたい質問のアクション、
編集2:
私はいくつかのIISのトレースを行って、私は確信していると考えていますこれは実際には認証に失敗したことであり、他のエラーではありません。ここで私がアクセスしようとしている場所や経路の例である:
<location path="WC">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
とルート:
routes.MapRoute(
"WC", // Route name
"WC/{id}",
new { action = "GetWC", controller = "WC" } // URL with parameters
);
そして失敗しているURL:
http://localhost/MyWebApp/WC/42
私が実際にしていますこれを処理する一般的なルートですが、疑問を取り除くためにこれを追加しました。いずれにしても、これは正常に動作します。
あなたが試している位置要素とルートの例を挙げることができますか? 2人の間の不一致が最も可能性の高い原因のように思われる。 –