1

ADを使用して許可を決定するイントラネットサイトを設定しました。IEでうまく機能します。

IEを使用している場合でも、ユーザーがサイトにアクセスして資格情報を求められることがあります。おそらくセキュリティ設定のために、IEはサイトに必要なAD情報を送信しなかったと思います。

Windows認証でセットアップされたWindowsServer2008R2およびIIS7.5を使用しています。

コードでは、以下を使用してページがロードされるときにNTユーザー名を要求します。

    Dim ss As SoftwareStorage = New SoftwareStorage()
    Dim username As String
    username = ss.returnUserName()
    ...
    <input type="hidden" id="domainName" value="<% Response.Write(username)%>" />
    ...
    Dim ftpUser As System.Security.Principal.IPrincipal
    Public Function returnUserName() As String
       ftpUser = System.Web.HttpContext.Current.User
       Return (ftpUser.Identity.Name)
    End Function

良い(機能している)http接続と悪い(機能していない)http接続のWiresharkフィードを調べました。良いものには、2つの最初のhttp呼び出しに関する次の情報があります。

    GET /foo/index.aspx HTTP/1.1 , NTLMSSP_NEGOTIATE
    GET /foo/index.aspx HTTP/W.W , NTLMSSP_AUTH, User: MYDOMAIN\foobar

悪いものは、同じ2つの最初の呼び出しで次のようになります。

    GET / HTTP/1.1
    GET / HTTP/1.1

したがって、IEは一方のインスタンス(IE 9、Vista)で要求に応じて正しいヘッダー情報を送信しておらず、もう一方のインスタンス(IE 9、Win7)で正しいヘッダー情報を送信しているように見えます。

誰かが私がこれを解決するのを手伝ってくれることを願っています。

4

1 に答える 1

1

安全性(セキュリティ)上の理由から、IEは、サーバーを信頼できることが確実でない限り、サーバーに資格情報を送信しません。これは、ドメイン資格情報を自動的に送信する場合に特に当てはまります。したがって、IEがサーバーを最大限に信頼できるようにするには、(ブラウザメニュー)[ツール]、[インターネットオプション]、[セキュリティ]に移動し、サーバーの名前を「イントラネット」ゾーンに明示的に設定します。イントラネットゾーンには、通常の「信頼できる」サーバーよりもはるかに高い信頼レベルがあります。安全上の注意:本当に信頼できる場合を除いて、サーバーをイントラネットサーバーとして明示的に識別しないでください。

詳細については、IEのセキュリティゾーンを参照してください。

また、IIS(認証)から、[Windows認証]が有効になっている(匿名が無効になっている)ことを確認し、([Windows認証]を選択して[プロバイダー](右)をクリック)NTLMがリストの一番上にあることを確認します。

于 2012-10-15T18:00:30.733 に答える