哪个用户运行我的asp.net用户?

时间:2010-09-17 13:24:01

标签: asp.net iis authentication

我一直都知道您在IIS网站/虚拟目录中设置的用户是运行该应用程序的用户(匿名用户身份)

但是在应用程序池中,我还可以设置用户(流程模型,身份)

两者之间有什么区别,如果我执行文件读取,哪一个需要访问?

编辑:

赏金是针对这个问题'但如果我使用'匿名身份验证',我选择的用户是否曾使用“匿名用户身份”? - '发表评论

3 个答案:

答案 0 :(得分:4)

结帐this post。引用:

  

这两个帐户是不同的东西。   想想网站的身份   代表网站的用户。如果   您为此帐户创建了一个新网站   是匿名IIS帐户。如果你   禁用“匿名身份验证”,   您的用户必须进行身份验证   反对网站(在   intranet / Windows域名站点   使用网络可能是隐含的   凭证。)

     

应用程序池标识是   运行所需的Windows帐户   你的集会。通常它是   “网络服务”帐号是一个   有限的最低特权帐户   用户权限。确实如此   有网络凭据。这意味着   您可以使用它进行身份验证   针对域中的网络资源。   您还可以使用它来访问SQL   集成的服务器数据库   安全

     

例如,如果你的ASP.NET   应用程序必须写入文件夹,   你必须授予权限   应用程序池帐户,而不是   网站帐户。更多   有关应用程序池的信息   身份,请阅读。

答案 1 :(得分:2)

网站标识视为定义谁可以访问该网站的规则。如果您指定要使用的匿名帐户,则该帐户必须有权访问该站点。如果禁用匿名访问,则用户的凭据必须能够访问该文件夹。

应用程序池标识定义了应用程序可以执行的操作。应用程序池的工作进程将使用应用程序池标识运行;必须授予该帐户访问应用程序需要访问的任何资源(SQL Server,文件共享等)的权限。

要回答您的问题:是,使用匿名帐户。想想你要托管一百个网站的场景,并且你不希望一个客户的文件能够访问另一个客户的文件。您可以为每个客户分配单独的匿名访问权限。每个站点的匿名帐户允许IIS仅访问与该特定站点相关的文件(前提是您已正确配置该帐户的访问权限。)

答案 2 :(得分:0)

@Michel

如果您的网站上设置了匿名访问帐户(虚拟目录)

你有

<system.web>
   <identity impersonate="true" />
</system.web> 

在你的web.config中,这将使用该身份。

如果您有一部分代码可以设置凭据

CredentialCache.DefaultCredentials

这将指向Anon帐户,如果您想测试您正在使用的用户,请尝试

Thread.CurrentPrincipal.Identity.Name.ToString()

有关更多信息,请查看此帖子 http://blogs.iis.net/sakyad/archive/2008/11/19/process-and-thread-identity-in-asp-net-a-practical-approach.aspx