私が取り組んでいるWebサイトの2つの部分があります。1つは通常のフォーム認証を使用し、もう1つはHMACベースの認証を使用します。フォームベースのものは通常どおり機能します(カスタムメンバーシッププロバイダーを使用する場合を除く)。
最も苛立たしいことは、デフォルトでは、フォーム認証を使用することを決定した場合、認証タグの下でルートWeb.configで指定されたloginUrlにすべての401応答をリダイレクトすることです。私のサイトのHMAC部分でこれをオフにするために、これらのコントローラーが存在する別の領域を作成しました。ただし、<authentication mode="None"></authentication>
タグをどこに置いても(領域/ビューのWeb.config、Webにあるかどうかに関係なく) .configをareaフォルダーに配置したか、ルートWeb.configのlocationタグの下に配置しました(これを行うと、そのタグがそこに属していないというエラーが実際に発生します))このことですべての401のloginUrlへのリダイレクトを停止できないようです。 。
これは私の髪を引き裂くようにさせているので、どんな援助も大いにありがたいです。
ちなみに、この質問は少なくとも2 回はさまざまな方法で質問されており、(実行可能な)回答はありません。私は認証モードをNoneに設定することに焦点を当てていますが、パスの役割を変更することに焦点を当てています(私の意見では、[Authorize(Roles="role1,role2,role3")]
各メソッドの属性を使用する方が簡単です)。これにより、私の質問は少し異なります。これが不可能な場合は、これを行うためのより良い方法を見つけることができるように、私にも教えてください。