2017-07-11 153 views
0

我正在开发一个Web应用程序,使用LDAP执行Active Directory更新。 当我在IIS 7上托管应用程序时,我在directoryEntry.CommitChanges();声明处得到Access is denied错误。IIS应用程序池标识使用登录用户Windows标识

然后我发现应用程序池正在使用标识“IIS APPPOOL \ ASP.NET v4.0”来执行更新。

我需要使用Web应用程序的用户的窗口帐户作为应用程序池的标识。在web.config中

  1. 添加>身份验证模式=“窗口”
  2. 禁用匿名身份验证在IIS
  3. 选择内置帐户“ApplicationPoolIdentity”作为应用程序:

    我做了以下泳池的身份

但还没有得到它的工作。

回答

3

你正在寻找的概念被称为模拟
documentation

  1. 打开IIS管理器,然后导航至要管理的级别。有关打开IIS管理器的信息,请参阅打开IIS管理器(IIS 7)。有关在UI中导航到位置的信息,请参阅IIS管理器中的导航(IIS 7)。
  2. 在功能视图中,双击认证。
  3. 在身份验证页面上,选择ASP.NET模拟
  4. 在“操作”窗格中,单击“启用”以使用具有默认设置的ASP.NET模拟身份验证。
  5. (可选)在“操作”窗格中,单击“编辑”以设置安全主体。
  6. 在“编辑ASP.NET模拟设置”对话框中,选择“特定用户”或“已通过身份验证的用户”。无论您决定如何,IIS都会将此身份用于ASP.NET应用程序的安全上下文。默认情况下,IIS 7被设置为模拟经过身份验证的用户。
  7. 单击确定以完成或继续执行下一个可选步骤以将标识更改为模拟。
  8. (可选)单击设置更改特定用户身份。
  9. 在设置凭证对话框中,输入用户名中的现有用户帐户的名称,密码中与该用户帐户关联的密码,然后确认新帐户IIS的匿名用户密码中的确切值访问。
  10. 单击确定关闭设置凭证对话框。
  11. 单击确定关闭编辑ASP.NET模拟设置对话框。
+0

嗨,谢谢你的建议。
我试过了,当我检查“System.Security.Principal.WindowsIdentity.GetCurrent()。Name”的值时,仍然显示“IIS APPPOOL \ ASP.NET v4。0“,这意味着应用程序仍然使用IIS APPPOOL标识来运行Web应用程序,而不是登录用户的Windows帐户。
这是我正在使用的IIS身份验证和模拟设置的屏幕截图:https://image.ibb.co/bVaNXv/IIS_Authentication.png –

+0

我也尝试过在web.config中使用“identity impersonate = true”,也不起作用 –

相关问题