【问题标题】:IIS APPPOOL Mysterious UserIIS APPPOOL 神秘用户
【发布时间】:2014-05-09 02:55:59
【问题描述】:

关于我的主题here 有一个类似的问题,但它并不能完全满足我遇到的问题。离开链接中的问题,apppool 身份将如何用作当前用户?我的应用程序实际上将用户从 SQL 数据库中取出,但 apppool 身份不在数据库中,但仍以当前用户身份登录。提前致谢!

【问题讨论】:

    标签: asp.net iis


    【解决方案1】:

    就 IIS 而言,您的 appPool 身份是当前用户。 IIS 不知道您存储在应用程序的 SQL 数据库中的任何帐户。当您启用匿名身份验证时,您可以更改 IIS 用于访问您的站点和应用程序的帐户。默认情况下,IIS 7 使用“IUSR”作为匿名访问的用户名,但是如果您想以这种方式限制访问,您可以将其更改为“应用程序池标识”。“IUSR”用户名是在安装 IIS 7 时创建的。任何连接到应用程序的客户端都将以“IUSR”或“IIS AppPool/{AppPoolName}”的形式连接。我猜你记录当前用户的函数是从 SQL 信息中读取的,而不是从你的 HTTPcontext 中读取的。有关应用程序池标识的更多信息,请点击此处:http://technet.microsoft.com/en-us/library/cc770966(v=ws.10).aspx

    【讨论】:

    • 是的,应用程序最初确实从 SQL 数据库中读取用户,但是当调用向日志表发送查询时,用户是从 ViewState 中读取的。我认为正在发生的事情是,APPPool 用户以某种方式覆盖了之前在 ViewState 中设置的用户。这甚至可能吗?
    • 您确定正在从 ViewState 读取用户吗?除非您明确模拟来自 SQL 数据库的用户,否则 IIS 会将应用程序池凭据发送到数据库。
    【解决方案2】:

    通常网站进程 (w3wp.exe) 会模拟应用程序池标识 (IIS APPPOOL\DefaultAppPool) 的标识

    除非您使用集成身份验证,否则网站进程会模拟访问它的经过身份验证的用户帐户的身份 (YOURDOMAIN\YourUsername)。

    除此之外,您的站点所做的工作与 IIS 身份验证是分开的,完全取决于您的应用程序 - 也就是说,如果您随后从数据库中设置用户,等等。

    【讨论】:

      猜你喜欢
      • 2011-06-11
      • 1970-01-01
      • 2013-05-01
      • 1970-01-01
      • 2017-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多