IIS7 - asp app + anonymous auth + isapi过滤器 - 如何强制非IUSR身份

时间:2013-12-11 13:30:15

标签: authentication iis-7 asp-classic isapi form-authentication

我有一个经典的ASP应用程序,我想在特定的Windows帐户/身份下运行,例如“MEME”。 asp应用程序虚拟根身份验证是匿名(其他类型的身份验证被禁用),因为应用程序将执行表单身份验证。过滤器需要强制app身份到MEME(IUSR没有权限做我需要的所有事情,比如打开服务管理器等......)。

我有isapi过滤器并注册了SF_NOTIFY_AUTHENTICATION事件。事件正在触发,过滤器设置pszUser = "MEME"(大部分时间和其他时间的其他“MEME2”帐户)和pszPassword = "memepass"。但该应用程序在 IUSR身份下运行。 IIS7 会忽略 pszUser / pszPassword 的设置。

我可以静态设置应用程序标识,编辑虚拟根目录,adv属性,物理路径凭据=“MEME”/“memepass”,但是这是静态的,我需要在运行时确定MEME或MEME2。

如果启用Basic Auth,则过滤器中设置的 pszuser / pszpassword 工作正常但我无法在客户端弹出任何auth对话框。

那么如何让 isapi 过滤器将应用标识设置为MEME(或任何其他赢额帐户)?

我有其他事件像SF_NOTIFY_PREPROC_HEADERS一样触发。

1 个答案:

答案 0 :(得分:0)

在IIS管理器中,您可以将站点根文件夹上的匿名访问权限设置为MEME和pw。

通过右键单击您的站点名称并选择属性来执行此操作。选择目录安全性选项卡,然后编辑“身份验证和访问控制”。确保选中“启用匿名访问”,并写下要在下面的字段中使用的凭据。点击确定等等。

现在,如果您只在IIS服务器上运行此站点,这里有一个可能适用于Isapi过滤器的解决方案。

您可以在全局级别而不是站点级别设置Isapi过滤器。执行与上面相同的操作,但在IIS管理器中的“网站”映射上执行此操作。这里将匿名用户更改为MEME2,然后设置您的ISAPI筛选器。

可能会工作......