使用用户身份时,使用网络服务/ ApplicationPoolIdentity进行Windows身份验证?

时间:2017-07-07 12:40:06

标签: c# asp.net-mvc asp.net-mvc-4 iis

参考以下链接:

https://docs.microsoft.com/en-us/iis/manage/configuring-security/application-pool-identities

我正在尝试更好地了解何时使用网络服务标识与服务器上的用户标识来访问文件。或者如果甚至根本使用用户身份。我最初的理解是,使用Windows身份验证,应用程序将使用经过身份验证的用户权限来访问应用程序目录以及用户有权访问的其他目录。

在IIS 7.0中设置我的应用程序时,我看到当应用程序池标识设置为使用ApplicationPoolIdentity时,它依赖于在访问时授予此虚拟帐户的权限。

应用程序何时依赖应用程序池/网络身份与用户身份(如果有的话)。

我正在使用ASP.NET MVC4

1 个答案:

答案 0 :(得分:1)

  

对于asp.net,默认身份IIS将使用应用程序池标识。它来自您设置的此应用程序池标识here

您可以使用“启用ASP.NET模拟”

覆盖此设置

enable asp.net impersonation

修改 - 更详细的版本。

默认情况下,您的asp.net代码在Application Pool的标识下运行,但静态文件(html,js,css等)将使用Authentication设置中的用户凭据。

  • 如果您使用匿名身份验证,asp.net代码将在应用程序池标识下运行,静态文件将使用来自此处的IUSR设置 Anonymous Authentication IUSR setting

  • 如果您使用的是Windows身份验证,那么asp.net仍然会使用应用程序池身份,而静态文件将使用传入登录用户的信任。

  • 您可以随时更改Asp.net模拟以使用传入用户凭据(匿名或Windows或基本身份验证)。

基本上asp.net将使用正在运行的进程(w3wp.exe身份),即应用程序池标识。

希望它清除!