【问题标题】:What is Impersonation in ASP.NET?什么是 ASP.NET 中的模拟?
【发布时间】:2011-02-03 12:15:41
【问题描述】:

请为非技术用户解释模拟。然后请在 ASP.NET 的上下文中解释。模仿是好是坏?我们是否在基于表单的身份验证的情况下使用它?

【问题讨论】:

    标签: asp.net impersonation


    【解决方案1】:

    您应该查看 Keith Brown 对 impersonation 的描述。这确实是一个 Windows 概念。

    当您的应用程序使用表单身份验证 (FA) 时,IIS 进程将在 IIS 中特定用户设置的凭据下运行。

    示例:如果您有一个名为 Bob 的用户使用 FA 和 IIS 设置登录以作为网络服务运行。 Bob 访问一个向另一台计算机发出 Web 服务调用的页面,另一台计算机将看到 IIS 用户而不是 Bob。您可以使用模拟让 Bob 以真正的 Windows 用户而不是网络服务的身份访问 Web 服务。

    模仿不是邪恶的,但它可能会被滥用。您确实需要了解对整体安全模型的影响。这也是为开发人员调试创建大量工作的原因。如果您对尝试访问的资源(例如 Web 服务)没有管理员权限,则尤其如此。

    【讨论】:

    • @ImadoddinIbnAlauddin 我将链接替换为指向 Internet 存档页面的链接。我实际上会尝试直接与作者联系,看看他是否可以将其重新上线。
    【解决方案2】:

    Web 应用程序通过 Web 服务器运行。该 Web 服务器以与您不同权限的用户身份运行。模拟允许应用程序以您(或计算机上具有不同权限的任何其他用户)的身份运行,就像您登录到运行它的计算机一样。

    它实际上使事情变得非常好。它允许您以另一种方式授予/限制对计算机上受保护文件的访问权限。

    是的,您可以使用表单身份验证来应用它(但您不必这样做)。

    【讨论】:

      【解决方案3】:

      ASP.NET 应用程序可以使用发出请求的用户的 Windows 身份(用户帐户)执行。模拟通常用于依赖 Microsoft Internet 信息服务 (IIS) 对用户进行身份验证的应用程序中。

      默认情况下禁用 ASP.NET 模拟。如果为 ASP.NET 应用程序启用了模拟,则该应用程序将在其访问令牌 IIS 传递给 ASP.NET 的身份的上下文中运行。该令牌可以是经过身份验证的用户令牌,例如登录 Windows 用户的令牌,也可以是 IIS 为匿名用户提供的令牌(通常是 IUSR_MACHINENAME 身份)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-30
        • 2017-03-27
        • 2017-10-12
        • 2011-03-20
        • 2018-04-11
        • 1970-01-01
        • 2011-05-17
        相关资源
        最近更新 更多