0

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

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

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

如果我启用基本身份验证,则过滤器中设置的pszuser/pszpassword可以正常工作,但我不能在客户端弹出任何身份验证对话框。

那么如何让isapi过滤器将应用程序身份设置为 MEME(或任何其他 win 帐户)?

我还有其他事件触发,例如SF_NOTIFY_PREPROC_HEADERS.

4

1 回答 1

0

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

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

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

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

可能工作...

于 2013-12-12T11:20:03.363 回答