【问题标题】:ASP.NET Impersonation make windows Identity flow across to SQL ServerASP.NET 模拟使 Windows 身份流向 SQL Server
【发布时间】:2011-11-23 21:33:17
【问题描述】:

我有一个启用了模拟的网站。

IIS Windows 身份验证已开启,匿名访问已关闭。

SQL Server 安全性添加了 Domain\TestUser 帐户

我使用 Domain\TestUser 登录。

浏览测试页面显示 HttpContext 设置为 Domain\TestUser 并且 ApplicationPool 设置为 Domain\TestUser - 它应该...但是我在浏览目标网页(尝试连接到 sql)时出错告诉我“NT AUTHORITY\ANONYMOUS LOGON”正在尝试连接到 SQL。

除此之外,我还从 Microsoft 网页运行了一个脚本,告诉我我的帐户不会流向 SQL。 http://msdn.microsoft.com/en-us/library/bsz5788z.aspx

问题是 - 为什么??

IsWellKnown(WellKnownSidType.InteractiveSid)) 
IsWellKnown(WellKnownSidType.BatchSid))       
IsWellKnown(WellKnownSidType.ServiceSid))     

以上都不返回True,但它们是什么意思!?

提前致谢,

KS

【问题讨论】:

  • 听起来你遇到了双跳问题:weblogs.asp.net/owscott/archive/2008/08/22/…
  • 有趣......但是为什么这篇微软文章显示了如何实现我正在尝试的步骤?! msdn.microsoft.com/en-us/library/bsz5788z.aspx
  • 你能贴出你的连接代码(主要是连接字符串)。我认为您需要将 Windows 身份验证的凭据传递到 sql 连接中。
  • 好的,仔细阅读了微软的文章——它说对于远程服务器(即在不同的盒子上),您应该清除 Windows 身份验证并检查基本。这样做很有效-但这很糟糕,我不希望以明文形式发送凭据,也不希望用户输入凭据。我的连接字符串使用集成安全顺便说一句。

标签: asp.net windows-authentication impersonation windows-identity


【解决方案1】:

正如大卫指出的那样,这似乎是双跳问题。除了使用基本身份验证,另一种解决方法可能是在 SQL Server 中使用混合身份验证模式并从连接字符串传递用户凭据。

当然,您可以随时尝试解决双跳问题 - 请参阅以下链接:

http://www.sqlservercentral.com/Forums/Topic1043330-359-1.aspx(这些给出了基本步骤)
http://blogs.technet.com/b/taraj/archive/2009/01/29/checklist-for-double-hop-issues-iis-and-sql-server.aspx(与上面相同,但采用检查列表格式 - 用于故障排除)

【讨论】:

  • 感谢您的链接 - 将明确检查这些!
猜你喜欢
  • 2012-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-27
  • 2014-09-08
  • 1970-01-01
相关资源
最近更新 更多