【问题标题】:Which account is used when a user navigates to a ASP.NET website?当用户导航到 ASP.NET 网站时使用哪个帐户?
【发布时间】:2009-12-30 18:09:27
【问题描述】:

当用户浏览 ASP.NET 网站时,用户是冒充ASPNET帐户还是在IIS->目录安全->用于匿名访问的帐户中指定的帐户(例如:IUSR_XXX

我的网站将文件写入磁盘,我想知道这些帐户中的哪些需要对该文件夹的写入权限?另外,有人能解释一下 web.config 中的 impersonate 元素是如何与这一切联系在一起的吗?

谢谢!

【问题讨论】:

    标签: .net asp.net impersonation


    【解决方案1】:

    如果在 ASP.NET 应用程序中启用了模拟,则:

    • 如果在 IIS 中启用匿名访问,则使用 IUSR_machinename 帐户发出请求。
    • 如果在 IIS 中禁用匿名访问,则使用经过身份验证的用户的帐户发出请求。
    • 在任何一种情况下,都会在 Windows 访问控制列表 (ACL) 中为用户请求的资源检查帐户的权限,并且资源仅在其运行的帐户对其有效时才可用资源。

    如果在 ASP.NET 应用程序中禁用模拟,则:

    • 如果在 IIS 中启用匿名访问,则使用系统级进程帐户发出请求。
    • 如果在 IIS 中禁用匿名访问,则使用经过身份验证的用户的帐户发出请求。
    • 在任何一种情况下,都会在 Windows ACL 中为用户请求的资源检查帐户的权限,并且资源仅在它们是帐户时才可用
      running under 对该资源有效。

    来源:Understanding Impersonation in ASP.NET

    【讨论】:

      【解决方案2】:

      默认为 identity is MachineName\ASPNET,您可以通过在 web.config 中打开身份模拟来更改此行为

      【讨论】:

      • Win XP 的默认设置。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-15
      • 1970-01-01
      • 2012-04-01
      • 2011-01-17
      • 2011-07-16
      • 2011-08-04
      相关资源
      最近更新 更多