IIS Express Windows認証


245

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と連携させるにはどうすればよいですか。不足している構成設定はありますか?

回答:


276

オプション1

\My Documents\IISExpress\config\applicationhost.configファイルを編集して、windowsAuthenticationを有効にします。

<system.webServer>
...
  <security>
...
    <authentication>
      <windowsAuthentication enabled="true" />
    </authentication>
...
  </security>
...
</system.webServer>

オプション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 applicationhost構成ファイルは次の場所にあります。

$(solutionDir)\.vs\config\applicationhost.config

そして、<UseGlobalApplicationHostFile>プロジェクトファイル内のオプションは、デフォルトまたはソリューション固有の設定ファイルを選択します。


ありがとう。しかし、私は上記のオプションを試しました。しかし、まだWindows認証を使用できません。VS2010 / SP1がこの機能を取得するまで待つ必要があると思います。
マーク・

3
オプション2がうまくいきました。この投稿を見つけるのにしばらく時間がかかりました!
TodK、2011年

VS2010 sp1が出たので、この質問はもう当てはまりません。私はそれをsp1をインストールせずに動作させるようにしようとしていました。私の推測では、sp1は最初にセットアップするために何かを実行していて、私が理解できなかったのだと思います。sp1がインストールされていないことが前提条件だったので、実際にはそうではありませんが、私は先に進んでこの答えを正しいとマークすることができます。
マーク

1
ありがとう!NTLMは、匿名認証を無効にすることで機能しました。
ロブアンジェリア2014

4
VS2015では、IIS Express構成がソリューション構造、具体的には$(SolutionDir)\。vs \ config \ applicationhost.configに移動しました。残念ながら、MyDocuments \ IISExpressの下の既存の構成は考慮されないため、カスタマイズを追加する必要があります。
Tedford、2015

401

Visual Studio 2010 SP1および2012では、IIS Expressのサポートが追加され、山括弧を編集する必要がなくなりました。

  1. まだの場合は、Webフレーバープロジェクトを右クリックして、[IIS Expressを使用...]を選択します。
  2. 完了したら、Webプロジェクトを選択し、を押しF4てプロパティパネルにフォーカスします。
  3. 「Windows認証」プロパティを有効に設定し、「匿名認証」プロパティを無効に設定します。

ここに画像の説明を入力してください

このソリューションは、vikomallのオプションよりも優れていると思います。

  • オプション#1は、すべてのIIS Expressサイトのグローバルな変更です。
  • オプション#2では、web.configに開発の問題が残ります。
    • さらに、IISサーバーのapplicationHost.configで「ロック解除」手順に従わない限り、IIS 7.5にデプロイするとエラーが発生する可能性があります。

上記のUIベースのソリューションは、IIS ExpressのapplicationHost.configのサイト固有の場所要素を使用して、アプリをそのままにします。

詳細はこちら:http : //msdn.microsoft.com/en-us/magazine/hh288080.aspx


5
私が見逃したことを強調するために、プロパティコンテキストメニューとAlt-Enterショートカットは、ウィンドウ認証が有効かどうかを変更できるプロパティペインの詳細に完全に取って代わるものではありません。F4プロパティペインを使用またはクリックして、実際にプロパティを表示します。
カレブペダーソン2011

この記事をやり直す前に、このタスクに数日間苦労しました:msdn.microsoft.com/en-us/library/gg703322%28VS.98%29.aspx 基本的に、元の投稿のすべてを無視して、「 virgin "applicationhost.configそして、この回答に従って設定を有効にします。最後に、Windows認証を取得します。ありがとう!!
DaveN59

.csprojのIISExpressWindowsAuthentication設定を「有効」から「無効」に変更します。<IISExpressWindowsAuthentication>無効</ IISExpressWindowsAuthentication>
Cameron Taggart

7
これらの2つのオプションはグレー表示され、無効になっています。なぜだと思いますか?
千枚通し

1
これはIIS Expressの構成にあるため、2つのオプションはグレー表示されています。<section name = "anonymousAuthentication" overrideModeDefault = "Allow" /> <section name = "windowsAuthentication" overrideModeDefault = "Allow" /> takeover overrideModeDefault = "Allow "そして、彼らは外れます
ミカ・アーマントルート

9

booij boyからの回答に基づいて、コントロールパネルの[Windows認証]機能をチェックしたかどうかを確認します->プログラム-> Windows機能を有効にする->インターネットインフォメーションサービス-> World Wide Webサービス->セキュリティ

また、FirefoxやInternet Explorerを使用する場合とは大きな違いがあるようです。「Windows認証」を有効にした後は、IEでのみ機能します。


2
そして、Firefoxで動作するようにそれを得る:markmonica.com/2007/11/20/...
bees73


5

これらの優れた回答に加えて、IISExpress開発環境のコンテキストで、悪名高い「system.web/identity@impersonate」エラーを阻止するために、applicationhost.configファイルで次の設定が適切であることを確認できます。 。

<configuration>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false" />
    </system.webServer>
</configuration>

これにより、開発およびテスト中の柔軟性が高まりますが、運用環境でこの設定を使用することの影響を理解してから、使用してください。

役立つ投稿:


完全に偶然に上陸しましたが、うまく
いき

2

IISマネージャーで、サイトをクリックします。「コンテンツビュー」ではなく、「機能ビュー」にいる必要があります。

「機能ビュー」のIISセクションで、いわゆる「認証」機能を選択し、クリックしてください。ここでは、Windows認証を有効にできます。これは、web.config(...)の設定によっても可能です(スレッドの提案の1つと思います)。

しかし、多分、あまり調べたくないweb.configがあるでしょう。その後、このスレッドはあまり役に立ちません、だから私はこの答えを追加しました。


0

この回答は、1)Visual Studio 2015にアップグレードする前にサイトがWindows認証で機能していたこと、および2)サイトがロードしようとしている場合/login.aspx(サイトにそのようなファイルがない場合)に役立つ可能性があります。

次の2行をappSettingsサイトののセクションに追加しますWeb.config

<add key="autoFormsAuthentication" value="false" />
<add key="enableSimpleMembership" value="false"/>

0

同じメモ-VS 2015では、.vs \ config \ applicationhost.configが表示されないか、使用できません。

デフォルトでは、.vsフォルダーは非表示になっています(少なくとも私の場合)。

.vsフォルダーが見つからない場合は、以下の手順に従ってください。

  1. Solutionフォルダーを右クリック
  2. 「プロパティ」を選択します
  3. ではAttributesセクション、クリックHidden(チェックデフォルト)チェックボックスをオンにし、
  4. 次に、「適用」ボタンをクリックします
  5. 「このフォルダー、サブフォルダー、ファイルに変更を適用する」オプションが選択されていることを確認するウィンドウが表示され、「OK」をクリックします。

    を除いてstep 3、手順1〜5を繰り返します。今回は、uncheck以前にチェックした「非表示」オプションを選択する必要があります。

これで、.vsフォルダーが表示されるはずです。


0

上記の回答のすべてを行った後、私はVisual Studioを管理者として実行していないことがわかりました。管理者として実行した後、問題は解決しました。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.