IISでASP.NET MVCプロジェクトをホストすると、Windows認証が適切に機能します。しかし、Visual Studioから実行すると、実行されません。
ここに私のWeb.configがあります:
<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
何か不足していますか?
IIS Express(おそらくそうする必要があります)でホストしている場合は、WebアプリケーションのプロパティでWindows認証を有効にしていることを確認してください。
ちなみに、イントラネットアプリケーションテンプレートを使用してVisual Studioで新しいASP.NET MVC 4アプリケーションを作成すると、画面に次のReadmeが表示されます。だから、試してみて、読んで、そこに書かれていることに従ってください:
このテンプレートをWindows Azure認証で使用するには、 http://go.Microsoft.com/fwlink/?LinkID=26794 を参照してください。
それ以外の場合、このテンプレートをWindows認証で使用するには、以下の手順を参照してください。
IIS Expressでのホスティング:
- ソリューションエクスプローラーでプロジェクトをクリックして、プロジェクトを選択します。
- プロパティペインが開いていない場合は、開きます(F4)。
- プロジェクトの[プロパティ]ペインで:
a)「匿名認証」を「無効」に設定します。
b)「Windows認証」を「有効」に設定します。IIS 7以降のホスティング:
- IISマネージャを開き、Webサイトに移動します。
- [機能ビュー]で、[認証]をダブルクリックします。
- [認証]ページで、[Windows認証]を選択します。 Windows認証がオプションでない場合は、Windows認証がサーバーにインストールされていることを確認する必要があります。
WindowsでWindows認証を有効にするには:
a)コントロールパネルで[プログラムと機能]を開きます。 b)[Windowsの機能を有効または無効にする]を選択します。 c)[インターネットインフォメーションサービス]> [World Wide Webサービス]> [セキュリティ]に移動し、Windows認証ノードがオンになっていることを確認します。
WindowsサーバーでWindows認証を有効にするには:
a)サーバーマネージャーで、[Webサーバー(IIS)]を選択し、[役割サービスの追加]をクリックします。 b)Webサーバー>セキュリティに移動し、Windows認証ノードがチェックされていることを確認します。
- [操作]ウィンドウで、[有効にする]をクリックしてWindows認証を使用します。
- [認証]ページで、[匿名認証]を選択します。
- [操作]ウィンドウで、[無効にする]をクリックして匿名認証を無効にします。
@Darin Dimitrovソリューションをうまく動作させることができませんでした(主に、IIS Visual Studioで説明されているExpress設定が見つからなかったためです!))。
IIS Express application.config
ファイルを編集する必要があることがわかりました。
%userprofile%\documents\iisexpress\config
にあります.vs
フォルダーのconfig
フォルダーにあります(Windowsエクスプローラーで\.vs\config
を追加するだけです)。修正:
<windowsAuthentication enabled="false">
に:
<windowsAuthentication enabled="true">