繁体   English   中英

IIS7中的SQL Server和Windows身份验证

[英]SQL Server and windows authentication in IIS7

我正在尝试使用SQL Server和Windows身份验证在Vista(IIS7)上运行ASP.NET网站。 无论我做什么,当我连接到数据库时,我得到例外:

SqlException was unhandled
    Login failed for user 'MyDomain\MachineName$'.

我应用的设置似乎并不重要,我无法让IIS7通过我的Windows登录凭据。

额外细节:

  • SQL Server和我的本地计算机都在ActiveDirectory上
  • IIS企业版,IIS7
  • SQL Server 2005
  • 禁用匿名身份验证,启用Windows身份验证
  • 模拟开/关没有区别
  • 所有身份(NetworkService,LocalSystem等)都给出相同的结果
  • 经典和集成管道给出了相同的结果

救命!

正确配置后,模拟开启/关​​闭会产生重大影响。 您想要的是“约束委派”,您需要为它配置IIS和ASP:

默认情况下,不允许IIS服务器impersonate您对SQL Server的攻击。 一篇关于如何配置它的MSDN文章 配置过程复杂且容易出错。

如果您的生产ISS和SQL Server在不同的服务器上运行,您将需要域管理员来配置两个服务器之间的模拟信任。 这通常是一个大型组织中的禁忌。

除了不由普通管理员部署之外,模拟还会阻止用户在SQL连接池中共享其连接。 即使是小型(5+用户)网站,这也会导致非常明显的性能损失。

您是否尝试为应用程序创建新的用户帐户,在Sql Server上为其授予适当的权限,然后将应用程序池设置为在此新帐户下运行? 这就是我通常做的,而且它有效。 我没有在NetworkService,LocalSystem或其他内置帐户下运行我的应用程序。

您的连接字符串是否包含Integrated Security=SSPI

您是否已将asp.net上下文切换为域用户?

这是关于此主题的MSDN文章

http://msdn.microsoft.com/en-us/library/2xzyzb0f.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM