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)で正しいヘッダー情報を送信しているように見えます。
誰かが私がこれを解決するのを手伝ってくれることを願っています。