什么是ASP.NET中的模拟?

问题描述 投票:11回答:3

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

asp.net impersonation
3个回答
11
投票

你应该看看Keith Brown对impersonation的描述。它实际上是一个Windows概念。

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

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

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


9
投票

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

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

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


2
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.