note 90129 deleted from install.windows by cmb
| From: | cmb@php.net | Date: | Sun, 31 Mar 2019 08:43:29 +0000 |
| Subject: | note 90129 deleted from install.windows by cmb | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-210470@lists.php.net to get a copy of this message | ||
Note Submitter: brian dot twardzik at usask dot ca
----
Been fighting with this for a while.
Installing PHP on IIS 6.0 using the ISAPI extension.
Note, if you have a web.config file present within the Virtual Directory folder, or otherwise
configure the Virtual Directory to run ASP.NET scripts in a specific configuration...
IIS will ignore its ISAPI obligations to render your PHP script and then cite a 401.3 error, access
denied based on ACL. If you have Integrated Windows Authentication turned on as a second
authentication method, the web browser will prompt you for credentials. If you supply some, either
from the local machine or from your domain, the website will suddenly work. This will also result in
your website loading when you reference it via Localhost. Only works with Localhost, and does not
work with any network-access IP.
Oddly enough, Anonymous impersonation will FAIL under these conditions! Why? I suspect it is because
ASP.NET scripts run under the APPLICATION-POOL USERNAME CONTEXT. Once its kicked into that gear, any
hope of using Anonymous user impersonation may go out the window.
References:
/*******************/
Impersonation in ASP.NET:
(Look up "Impersonation in ASP.NET (IIS 6.0)" on www.microsoft.com/Technet/ )
Developer.com Article Demonstrating how ASP.NET Runs under ApplicationPools:
http://www.developer.com/net/asp/article.php/2245511
/*******************/
This, to date, is my only theory.
Filemon/Process Mon will not register any kind of failed file access attempts, everything will
appear normally. Even the presence of a BUFFER_OVERFLOW message is normal within the context of
SYSINTERNALS traces...
But if you download the IIS 6.0 resource kit, pay attention specifically to IISTRACE.
Running IISTRACE and hitting your webserver will reveal that the PHP5ISAPI filter DLL is never
called! Only the asp filter DLL.
The moral of your story? Keep web.config files out of your PHP directories!