如何在ASP.NET中禁用IIS凭据

时间:2009-04-21 10:48:21

标签: asp.net iis authentication

是否有办法在global.asax或其他位置禁用IIS默认身份验证,具体取决于传递的参数。

客户端请求使用IIS身份验证并在POST变量中提供身份验证信息来保护相同的表单

2 个答案:

答案 0 :(得分:4)

IIS请求在将请求传递给ASP.NET egine之前发生。因此,你的问题的答案是“不”。

但是,通过仅在IIS上启用匿名访问,您可以在应用程序中处理任何身份验证(包括Basic等),而不会被IIS“截获”。

答案 1 :(得分:0)

这不是一个完整的答案,但可能会给你指路。如果您使用的是IIS 7,那么HttpModules现在是IIS的原生。也就是说,无论要提供什么类型的内容,您都可以获得IIS使用的IHttpModule接口的实现。

我怀疑你可以连接这样一个HttpModule,以便当IIS因Windows身份验证失败而导致请求失败时会注意到它。如果可能,那么您仍然可以检查POST变量并为请求提供“第二次机会”。

我也想知道是否有可能使用IIS 7来解决这个问题 - 让主站点使用匿名身份验证,以便您的代码可以检查表单POST参数。如果该身份验证失败,则重定向到Windows身份验证站点。