我有一个经典的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
一样触发。
答案 0 :(得分:0)
在IIS管理器中,您可以将站点根文件夹上的匿名访问权限设置为MEME和pw。
通过右键单击您的站点名称并选择属性来执行此操作。选择目录安全性选项卡,然后编辑“身份验证和访问控制”。确保选中“启用匿名访问”,并写下要在下面的字段中使用的凭据。点击确定等等。
现在,如果您只在IIS服务器上运行此站点,这里有一个可能适用于Isapi过滤器的解决方案。
您可以在全局级别而不是站点级别设置Isapi过滤器。执行与上面相同的操作,但在IIS管理器中的“网站”映射上执行此操作。这里将匿名用户更改为MEME2,然后设置您的ISAPI筛选器。
可能会工作......