Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 使用登录用户Windows标识的IIS应用程序池标识_Asp.net_Asp.net Mvc_Iis 7 - Fatal编程技术网

Asp.net 使用登录用户Windows标识的IIS应用程序池标识

Asp.net 使用登录用户Windows标识的IIS应用程序池标识,asp.net,asp.net-mvc,iis-7,Asp.net,Asp.net Mvc,Iis 7,我正在开发一个web应用程序,它使用LDAP执行Active Directory更新。 当我在IIS 7上托管应用程序时,在语句directoryEntry.CommitChanges()处出现访问被拒绝错误 然后我发现应用程序池正在使用标识“IIS APPPOOL\ASP.NET v4.0”执行更新 我需要使用web应用程序的用户的窗口帐户作为应用程序池的标识 我已经做了以下工作: 在web.config中添加>身份验证模式=“Windows” 已禁用IIS上的匿名身份验证 选择内置帐户“Ap

我正在开发一个web应用程序,它使用LDAP执行Active Directory更新。 当我在IIS 7上托管应用程序时,在语句
directoryEntry.CommitChanges()处出现
访问被拒绝
错误

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

我需要使用web应用程序的用户的窗口帐户作为应用程序池的标识

我已经做了以下工作:

  • 在web.config中添加>身份验证模式=“Windows”
  • 已禁用IIS上的匿名身份验证
  • 选择内置帐户“ApplicationPoolIdentity”作为应用程序池的标识

  • 但是它仍然没有发挥作用。

    您正在寻找的概念称为模拟
    从:

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

  • 您正在寻找的概念称为模拟 从:

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

  • 在我的配置中,它使用active directory帐户和System.Security.Principal.WindowsIdentity.GetCurrent()的结果进行日志记录。名称是经过身份验证的会话

    <identity impersonate="true"/>
    <authentication mode="Windows">
      <forms name="Login" loginUrl="Login.aspx" path="/" timeout="10"/>
    </authentication>
    <authorization>
      <deny users="?"/>
      <allow users="*"/>
    </authorization>
    

    在我的配置中,它使用active directory帐户和System.Security.Principal.WindowsIdentity.GetCurrent()的结果记录日志。名称是经过身份验证的会话

    <identity impersonate="true"/>
    <authentication mode="Windows">
      <forms name="Login" loginUrl="Login.aspx" path="/" timeout="10"/>
    </authentication>
    <authorization>
      <deny users="?"/>
      <allow users="*"/>
    </authorization>
    
    
    
    您好,谢谢您的建议
    我已经尝试过,当我检查“System.Security.Principal.WindowsIdentity.GetCurrent().Name”的值时,仍然显示“IIS APPPOOL\ASP.NET v4.0”,这意味着应用程序仍在使用IIS APPPOOL标识运行web应用程序,而不是登录用户的windows帐户。
    这是我现在使用的IIS身份验证和模拟设置的屏幕截图:我还尝试了web.config中的“identity impersonate=true”,也无效。嗨,谢谢你的建议
    我已经尝试过,当我检查“System.Security.Principal.WindowsIdentity.GetCurrent().Name”的值时,仍然显示“IIS APPPOOL\ASP.NET v4.0”,这意味着应用程序仍在使用IIS APPPOOL标识运行web应用程序,而不是登录用户的windows帐户。
    这是我现在使用的IIS身份验证和模拟设置的屏幕截图:我还在web.config中尝试了“identity impersonate=true”,但也不起作用