IIS 7.0中的模拟

时间:2008-08-13 22:31:17

标签: configuration iis-7 impersonation

我有一个在IIS 6.0下正常运行的网站:它使用Windows凭据对用户进行身份验证,然后在与访问数据库的服务进行通信时,它会传递凭据。

在IIS 7.0中,相同的配置设置不会传递凭据,并且数据库会被NT AUTHORITY \ ANONYMOUS命中。

有什么我想念的吗?我已经在我的IIS 7.0网站中关闭了ANONYMOUS访问权限,但是我无法使用它。

这些是我在IIS 6.0和7.0上使用的设置:

<authentication mode="Windows">
<identity impersonate="true">

从6.0更改为7.0?

4 个答案:

答案 0 :(得分:8)

IIS7和IIS6.0之间发生了变化。我找到了一篇可能真正帮助你的博客文章(click here to see it)。

您是在集成模式还是经典模式下运行应用程序?从我看到的,将Impersonate属性设置为true应该显示500错误,并显示以下错误消息:

  

内部服务器错误。这是HTTP   错误500.19:请求的页面   无法访问因为相关   页面的配置数据是   无效。

以下是建议的解决方法:

  

解决方法:

     

1)如果您的申请不依赖   模仿请求用户   在BeginRequest和   AuthenticateRequest阶段(唯一的   模仿不是的阶段   可能在集成模式下),忽略   通过添加以下内容来解决此错误   你的应用程序的web.config:   

<validation validateIntegratedModeConfiguration="false"
     

/&GT;

     

     

2)如果你的申请确实依赖   模仿BeginRequest和   AuthenticateRequest,或者你不是   当然,转到经典模式。

我希望这对了解IIS 7.0现在的工作方式很有用。

答案 1 :(得分:1)

您的IIS服务器是否设置为可信任SQLServer的委派?我之前使用WebDAV遇到过这种问题,我们必须让运行IIS的服务器信任文件服务器才能代表文件服务器进行身份验证。

答案 2 :(得分:0)

通常,如果您正在进行这样的双跃点认证,除非第一次认证是基本的,否则通常会涉及Kerberos。

我会检查IIS 6服务器上的身份验证,并确保它在IIS 7上是相同的。

如果IIS 6框设置为Windows Integrated,则需要验证kerberos设置 - SPN,委派等。

答案 3 :(得分:0)

有趣......我遇到了相反的问题 - 无法将身份验证从客户端浏览器传递到Web服务器并通过防火墙传输到大型企业网络中的数据库。

我还觉得对数据库进行“端到端用户”身份验证是个坏主意,也存在潜在的安全风险。没有什么可以阻止最终用户加载SQL Query并直接连接到您的数据库,因此您最好锁定您的架构!

@Esteban - 澄清了我的在帮助你回答时没有用。