2011-01-10 8 views
4

同じサーバー(IIS 7.5)でホストされている2つの異なるサイトで同じコードベースを使用しています。AuthenticationType Negotiate vs NTLM

何らかの理由で、httpハンドラの背後にあるコードのIdentity.AuthenticationTypeプロパティをチェックすると、NTLMが1つのサイトを参照し、もう一方がネゴシエートしています。これはいくつかの問題を引き起こしており、NTLMを使用するには両方とも必要です。

なぜこの違いがわかりますか?これまでのところ、両方のIISサイトが同じ方法で設定されていることがわかりましたが、もちろん検出できなかった違いが少なくとも1つあります。 ありがとう!

EDIT
私はIISからプロバイダを「交渉」を除去するための手順を提供しthisリンクを使用しました。それは私のために働かなかった。私は実行しました

appcmd.exe set config "Contoso" -section:system.webServer/security/authentication/windowsAuthentication /-"providers.[value='Negotiate']" /commit:apphost 

多分私は何か間違っていましたが、それは役に立たなかったでしょう。私はまだ "Negotiate"認証タイプとして表示されます

私が持っている問題は、私がweb.config偽装資格情報で設定しているが、それらを使用していないということです。私は提供する資格情報を使用する代わりに、匿名ユーザーを使用します。

そして何か変わったことはwindowsAuthenticationが無効になっていることです。私は "Negotiate"はwindowsAuthenticationによってのみ使用されていると思った。

+0

両方のasp.net設定ファイルが偽装を指定していますか?両方が同じセキュリティゾーンにありますか? – sisve

+0

@サイモン:両方のファイルが偽装を指定します。セキュリティゾーンの確認方法が不明です。 –

+0

セキュリティゾーンはIE(インターネット、イントラネット、信頼済み、信頼できない)です。他のブラウザでは実際には適用されません。 – sisve

答えて

0

最初に確認するのは、各サイトで有効になっている認証タイプに違いがあるかどうかです。

デフォルトでは、匿名のみが有効です。

+0

回答に感謝します。私は自分の欲求不満のパスで100回チェックしました。= –

+0

サイトが異なるアプリケーションプールを使用していますか? –

+0

はいsir -------- –

2

ネゴシエートは、NtlmまたはKerberos認証を内部的に選択します。 サイトにNtlmが指定されている場合は、Ntlm認証のみが選択されます。 サイトを確認し、認証が同じであることを確認してください。

0

のInternet Information Server(IIS)のバージョンが、このようなセクションの<% SystemDrive%に>/Windowsの/ System32に/ inetsrvに/設定/のApplicationHost.configファイルで見てみる7.0の場合:

<system.webServer> 
    <security> 
     <authentication> 
      <windowsAuthentication enabled="false"> 
       <providers> 
        <add value="Negotiate" /> 
        <add value="NTLM" /> 
       </providers> 
      </windowsAuthentication> 
     </authentication> 
    </security> 
</system.webServer> 

Windows Authentication Providersのドキュメントで詳細を確認できます。

Remove NEGOTIATE from WindowsAuthentication in IIS質問には、交渉を再度有効にしようとしたときに役立つと判明した交渉を削除する手順が記載されています。

1

ログインしたユーザーを取得するには、Windows認証を有効にして匿名認証を無効にする必要があります(ここでは、ユーザーがドメインで認証されていると想定しています。 Windows認証を使用して資格情報を認可していません)。

IIS7.5では、使用されているプロバイダを確認するには、認証をクリックし、Windows認証を右クリックしてプロバイダを選択します。有効なプロバイダーのリストがありますが、その順序は重要です。両方が同じであることを確認してください(あなたの場合は、リストの一番上にNTLMがあります)。

ご迷惑をおかけします。