このエラーに関する多くの投稿をチェックしましたが、まだ問題を修正できませんでした。
Windows 8 proで実行されているVS2013で構築されたシンプルなMVC5 Webサイトがあります。サイトの作成時に、個々のアカウントのオプションが選択されました。特定のビュー/コントローラーへのアクセスを特定のADグループに制限できるように、ADアカウントユーザーのみがWebサイトを使用できるように、Windows認証を有効にする必要があります。
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承認ルール内で、「匿名ユーザー」を拒否し、「すべてのユーザー」を許可するように設定しました
どこがおかしいの?
この問題に個人的に遭遇したのは、レイアウトで使用された子アクションに誤って[Authorize]
を追加したときだけです。サインインアクションに[Authorize]
を追加すると、同じ効果があるか、サインインアクションに[AllowAnonymous]
を追加するのを怠ると、コントローラーに[Authorize]
があります。長いと短い、これは実際のサインインページで承認を必要とするものが原因であり、サインインページにリダイレクトされるため、承認が必要になり、サインインページにリダイレクトされるなどです。
tl; dr
[Authorize]
であることを確認してください。[AllowAnonymous]
であることを確認してください。[Authorize]
を持たないこと、または[AllowAnonymous]
で装飾されたコントローラーにある場合は[Authorize]
を持たないことを確認してください。Windows認証を有効にしたときにこのエラーが発生しました。 Windowsログインに基づいてユーザーを認証したかったため、アプリケーションにログインページが必要ありません。
Web設定ファイルに以下を追加することで、エラーが修正されました。
タグsystem.web
、認証の変更mode="None"
認証へmode="Windows"
タグappSettings
の下に、追加key="owin:AutomaticAppStartup" value="false"
ログインページにリダイレクトするスタートアップの機能がある場合があります。無効にする必要があります。
アカウントコントローラーとその依存関係を作成する既定の認証方法でプロジェクトを作成しました。認証方法をWindowsに変更すると、前述のエラーが発生しました。
私がやったのは、Startup.csファイルのConfigureAuth(app)
関数をコメントアウトして問題を解決することでした。
同じ問題がありました。
[プロジェクトのプロパティ]で確認します。
Anonymous Authentication=False
Windwos Authentication=True