我似乎无法让SQL服务器识别我的凭据。
当我登录Asp.net时,它能认出我,但当我执行SQL命令时,我会收到一个登录失败的消息。
IIS服务器和SQL服务器位于不同的机器上。
有其他应用程序在IIS服务器上,它们能够验证到SQL服务器。我相信Active Directory设置是正确的。我正在调查我做错了什么。
我一定是漏掉了什么。
- 我检查了IIS设置
- Web配置文件被设置为模拟用户。
以下是相关信息。如果有人知道我错过了什么或者我做错了什么,我将不胜感激。
IIS设置:
- “集成Windows身份验证”已选中
- “启用匿名访问”未选中
Web Config
<authentication mode="Windows"/>
<identity impersonate="true"/>
<authorization>
<deny users="?" />
</authorization>
Page_Load代码:
Dim winId As IIdentity = HttpContext.Current.User.Identity
TextBoxMessage.Text = winId.Name + Environment.NewLine
Dim cnn As SqlClient.SqlConnection
Try
Dim sql As String = "*****"
cnn = New SqlClient.SqlConnection("Data Source=*****;Initial Catalog=****;Integrated Security=True")
cnn.Open()
Dim cmd As New SqlClient.SqlCommand(sql, cnn)
cmd.ExecuteNonQuery()
cnn.Close()
Catch ex As Exception
TextBoxMessage.Text += ex.Message
cnn.Close()
End Try
输出:
域名\用户名
用户“NT AUTHORITY\ANONYMOUS LOGON”登录失败。