我正在尝试获得通过Windows身份validation工作的.NET应用程序。
它在IIS7上以经典模式运行,在IIS的身份validation设置下,我启用了Windows身份validation,并禁用了其他所有function(包括匿名身份validation)。
要开始,在web.config中,我只需要:
<authentication mode="Windows" /> <authorization> <allow users="*" /> </authorization>
据我了解,这意味着网站进程应该作为应用程序池的身份运行。 用户使用他们的Windows身份login。
我发现虽然只有用户有权访问该网站文件夹才能访问该网站。 为什么是这样? 我认为,因为该进程正在使用应用程序池的身份,所以用户拥有什么凭证并不重要。
我做错了什么或误解了什么吗?
在应用程序池中运行的任何代码都将使用该身份而不是经过身份validation的用户运行,但是IIS服务器将使用传递身份validation来validation用户实际上是否可以访问从该目录提供的文件并设置新文件的所有权由该用户创build。
尽pipe通过例如.net代码进行的任何后端数据库访问都将在应用程序池下发生。