gpt4 book ai didi

asp.net windows 身份验证到 sql server

转载 作者:行者123 更新时间:2023-12-04 14:43:16 25 4
gpt4 key购买 nike

我似乎无法让 sql server 识别我的凭据。

Asp.net 在我登录时识别出我,但是当我执行 sql 命令时,我收到登录失败消息。

IIS 服务器和 SQL 服务器在不同的机器上。

IIS 服务器还有其他应用程序可以向 sql server 进行身份验证。我相信 Active Directory 设置是正确的。我正在研究我所做的不同之处。

我一定是遗漏了什么。

  • 我检查 IIS 设置
  • 网络配置设置为模拟。

以下是相关信息。如果有人知道我错过了什么或做错了什么,我将不胜感激。

IIS 设置:

  • “集成 Windows 身份验证”已选中
  • 未选中“启用匿名访问”

网络配置

<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”登录失败。

最佳答案

这是关键 = IIS 服务器和 SQL 服务器在不同的机器上。您正面临经典的双跳问题。可以这样想:

  • 您使用您的凭据访问 Web 应用程序
  • 在这种情况下,IIS 必须向 SQL Server 显示您所说的身份
  • IIS 说,“为什么你好 SQL Server,我正在传递 Tony 的 kerberos 信用,它们是合法的”
  • SQL Server 说,“嗯,IIS 我不确定我是否信任你,我需要证明你是可信的才能向我出示这些凭据”。

因此,一旦您启用了 Remus 提到的委派,您的 SQL Server 将信任您的 IIS 服务器代表您提供的凭据。

在安全方面,在授权下,明智的选择是:

信任这台计算机只委托(delegate)指定的服务 |仅使用 Kerberos |然后在“此帐户可以向其提供委派凭据的服务”下方,确保您仅明确设置所需的服务器/端口。

关于asp.net windows 身份验证到 sql server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1981414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com