iis-7.5 - 使用集成管道模拟域用户

标签 iis-7.5 windows-authentication windows-server-2008-r2 impersonation integrated-pipeline-mode

在本地 Intranet 环境中,如果我们想使用模拟 Windows 域用户,我们是否注定要在应用程序池中使用“经典”管道模式,或者是否有一种新的方法来声明性地“以身份运行”(所以-说话)?

我的目标是对 Intranet 上的本地 Web 应用程序使用 Windows 身份验证,以便用户可以在其 Active Directory 帐户下进行身份验证并运行应用程序(原则)。每次我尝试此操作(当然使用 NetworkService 身份)时,都会收到此错误:

screenshot of error message

最佳答案

我编写了一个小应用程序来显示从多个不同位置(例如Page.User.Identity.Name)获取的当前用户的网络用户名。我还使用几种不同的方法来查询 Active Directory 来获取有关域用户的信息。所有这一切都是为了验证以下内容。

我发现使用 Windows 身份验证运行应用程序有两种主要模式,根据我的研究,这主要用于 Intranet 环境。以下是配置的最低基本要素:

经典模式

  • AppPool - 托管管道设置为经典模式。
  • AppPool - 身份设置为网络服务。
  • 身份验证 - 已禁用:匿名身份验证
  • 身份验证 - 已启用:ASP.NET 模拟
  • 身份验证 - 已启用:Windows 身份验证
  • 提供商 - 已禁用:Kerberos
  • 高级设置 - 内核模式:任一

集成模式

  • AppPool - 托管管道设置为集成模式。
  • AppPool - 身份设置为网络服务。
  • 身份验证 - 已禁用:匿名身份验证
  • 身份验证 - 已禁用:ASP.NET 模拟
  • 身份验证 - 已启用:Windows 身份验证
  • 提供商 - 已启用:Kerberos
  • 高级设置 - 内核模式:已禁用

现在最重要的是!!

如果您想使用集成模式(这是理想的选择,因为它会产生更多功能,而且是集成),您将需要启用委派。这里有几篇必读文章,以了解 Delegation 的基础知识,并延伸Dynamic SPN Registration 。由于这会涉及更多您可能愿意深入研究的 Kerberos 和安全注意事项,因此坚持使用经典模式可能会更容易,您所要做的就是启用模拟并收工;否则作弊并禁用 validateIntegratedModeConfiguration

关于iis-7.5 - 使用集成管道模拟域用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12966286/

相关文章:

iis - 只有 80 端口适用于网站

asp.net-mvc-4 - 如何使用 web.config 设置自定义标题?

c# - 在 IIS 服务器上执行 javascript(服务器端)

c# - ASP.net c# 未知错误 (0xfffffffe)

wix - 如何使用 WIX 3.5 项目/设置将 net.tcp 添加到 "Enabled protocols"?

c# - 如何在Windows身份验证模式下将Windows用户添加为SQL用户

ios - ios 中的 Windows azure 事件目录身份验证

asp.net - 检查IIS 7.5中的IIS虚拟路径

具有 Windows Auth 的 ASP.NET 角色

windows-server-2008-r2 - 有时使用 --ignore-load-errors 忽略此错误会起作用