当用户导航到 ASP.NET 网站时使用哪个帐户?
Posted
技术标签:
【中文标题】当用户导航到 ASP.NET 网站时使用哪个帐户?【英文标题】:Which account is used when a user navigates to a ASP.NET website? 【发布时间】:2009-12-30 18:09:27 【问题描述】:当用户浏览 ASP.NET 网站时,用户是冒充ASPNET
帐户还是在IIS->目录安全->用于匿名访问的帐户中指定的帐户(例如:IUSR_XXX
)
我的网站将文件写入磁盘,我想知道这些帐户中的哪些需要对该文件夹的写入权限?另外,有人能解释一下 web.config 中的 impersonate 元素是如何与这一切联系在一起的吗?
谢谢!
【问题讨论】:
【参考方案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 的默认设置。以上是关于当用户导航到 ASP.NET 网站时使用哪个帐户?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 asp.net 4.5 中使用 facebook 帐户开发登录