Silverlightアプリケーションをホストするために、VS2010でIIS Expressを使用しようとしています。 applicationhost.configファイルを変更して、適切な構成設定を変更できるようにしました。 web.configに次のものがあります。
<location path="">
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>
認証されていないため、ドメインサービスコールはユーザーとしてnullレコードを返します。 VS2010 SP1ベータ版をインストールした後、これを動作させることができましたが、IIS Expressのみで動作するようにしようとしています。
Windows認証をIIS Expressと連携させるにはどうすればよいですか。欠落している構成設定はありますか?
option-1:
\My Documents\IISExpress\config\applicationhost.config
ファイルを編集してwindowsAuthenticationを有効にします。つまり:
<system.webServer>
...
<security>
...
<authentication>
<windowsAuthentication enabled="true" />
</authentication>
...
</security>
...
</system.webServer>
option-2:
次のように\ My Documents\IISExpress\config\applicationhost.configのwindowsAuthenticationセクションのロックを解除します
<add name="WindowsAuthenticationModule" lockItem="false" />
必要な認証タイプのオーバーライド設定を「許可」に変更します
<sectionGroup name="security">
...
<sectionGroup name="system.webServer">
...
<sectionGroup name="authentication">
<section name="anonymousAuthentication" overrideModeDefault="Allow" />
...
<section name="windowsAuthentication" overrideModeDefault="Allow" />
</sectionGroup>
</sectionGroup>
アプリケーションのweb.configに以下を追加します
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<security>
<authentication>
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</configuration>
以下のリンクが役立ちます: http://learn.iis.net/page.aspx/376/delegating-configuration-to-webconfig-files/
VS 2010 SP1をインストールした後、Windows認証を機能させるにはオプション1 + 2の適用が必要になる場合があります。さらに、IIS Express applicationhost.configで匿名認証をfalseに設定する必要がある場合があります。
<authentication>
<anonymousAuthentication enabled="false" userName="" />
VS2015の場合、IIS Expressアプリケーションホスト構成ファイルは次の場所にあります:
$(solutionDir)\.vs\config\applicationhost.config
プロジェクトファイルの<UseGlobalApplicationHostFile>
オプションは、デフォルトまたはソリューション固有の構成ファイルを選択します。
Visual Studio 2010 SP1および2012では、IIS Expressのサポートが追加され、山括弧を編集する必要がなくなりました。
このソリューションはvikomallのオプションよりも優れていると思います。
上記のUIベースのソリューションは、IIS ExpressのapplicationHost.configでサイト固有のロケーション要素を使用し、アプリはそのままにします。
詳細はこちら: http://msdn.Microsoft.com/en-us/magazine/hh288080.aspx
Booij boyからの回答に基づいて、コントロールパネル->プログラム-> Windows機能の有効化または無効化->インターネットインフォメーションサービス-> World Wide Webサービス->セキュリティで「ウィンドウ認証」機能をチェックしたかどうかを確認します。
また、firefoxまたはInternet Explorerを使用する場合には大きな違いがあるようです。 「Windows認証」を有効にした後、IEでのみ機能します。
これらの優れた答えに加えて、IISExpress開発環境のコンテキストで、悪名高い「system.web/identity@impersonate」エラーを阻止するために、applicationhost.configファイルで次の設定を確実に行うことができます。 。
<configuration>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
</configuration>
これにより、開発およびテスト中の柔軟性が向上しますが、実稼働環境でこの設定を使用することの意味を理解してから確認してください。
役立つ投稿:
IIS Managerでサイトをクリックします。 「コンテンツビュー」ではなく「機能ビュー」である必要があります
「機能ビュー」のIISセクションで、いわゆる機能「認証」を選択し、それをクリックします。ここで、Windows認証を有効にできます。これは、web.configの設定によっても可能です(スレッド内の提案の1つで)
しかし、多分あなたはあまりスクラブしたくないweb.configを持っています。その後、このスレッドはあまり助けにはなりません。だから、この答えを追加しました。
いずれの回答も役に立たない場合は、プロジェクトのプロパティを調整する必要があります。その方法については、他のStackOverflowの回答をご覧ください。
1)Visual Studio 2015にアップグレードする前にサイトがWindows認証を使用していた場合、および2)サイトが/login.aspx
をロードしようとしています(サイトにそのようなファイルが存在しない場合でも)。
サイトのWeb.config
のappSettings
sectionに次の2行を追加します。
<add key="autoFormsAuthentication" value="false" />
<add key="enableSimpleMembership" value="false"/>
上記の回答のすべてを実行した後、Visual Studioを管理者として実行していないことがわかりました。管理者として実行した後、問題は解決しました。
デフォルトでは、.vsフォルダーは非表示になっています(少なくとも私の場合)。
.vsフォルダーが見つからない場合は、以下の手順に従ってください。
Attributes
]セクションで、[Hidden
]チェックボックス(デフォルトはオフ)をクリックし、step 3
を除く)。今回は、以前にチェックした 'Hidden'オプションをuncheck
する必要があります。これで.vsフォルダーが表示されるはずです。