このエラーに関する投稿をたくさん確認しましたが、まだ問題を解決できていません。
私は、Windows 8 Pro で実行されている VS2013 で構築されたシンプルな MVC5 Web サイトを持っています。サイトの作成時に、個別のアカウントのオプションが選択されました。AD アカウント ユーザーだけが Web サイトを使用できるように Windows 認証を有効にし、特定の AD グループに特定のビュー/コントローラーへのアクセスを制限できるように承認を有効にする必要があります。
VS 内で Web プロジェクトを選択した後、プロパティ ウィンドウ (F4) を更新して、匿名認証を無効にし、Windows 認証を有効に設定しました。
プロジェクトの web.config には、次のセクションが含まれるようになりました。
<system.web>
<authentication mode="Windows" />
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<authorization>
<deny users="?" />
</authorization>
</system.web>
<system.webServer>
<modules>
<remove name="FormsAuthenticationModule" />
</modules>
</system.webServer>
IIS または F5 からサイトにアクセスすると、次のエラーが発生します: HTTP エラー 404.15 - 見つかりません。要求フィルタリング モジュールは、クエリ文字列が長すぎる要求を拒否するように構成されています。クエリ文字列内で繰り返される長い連結である ReturnUrl を返すために何かがループしていることに気付きました。
IIS\Authentication セクションでは、「匿名認証、ASP.Net 偽装、およびフォーム認証」を無効に設定しました。IIS.Net 承認規則のセクションでは、「匿名ユーザー」を拒否し、「すべてのユーザー」を許可するように設定しました。
どこが間違っているのでしょうか?
ベストアンサー1
私が個人的にこの問題に遭遇したのは、[Authorize]
レイアウトで使用されている子アクションを誤って追加したときだけです。[Authorize]
サインイン アクションを追加しても同じ効果があります。または、[AllowAnonymous]
コントローラーにサインイン アクションが含まれているときにサインイン アクションを追加するのを忘れただけ[Authorize]
です。簡単に言うと、これは実際のサインイン ページで認証を必要とするものが原因で発生し、その後サインイン ページにリダイレクトされ、そのサインイン ページでも認証が必要になり、サインイン ページにリダイレクトされる、といった状態になります。
要約
- サインイン/ログインアクションを確認してくださいではない持っている
[Authorize]
。 - サインイン/ログインアクションを確認してくださいする持っている
[AllowAnonymous]
。 - レイアウトまたはサインイン ページで使用される子アクションがで装飾されたコントローラー内にある場合は、
[Authorize]
または がないことを確認してください。[AllowAnonymous]
[Authorize]