Iis 如何在Windows密码和窗体身份验证后保护ASP.NET站点?

Iis 如何在Windows密码和窗体身份验证后保护ASP.NET站点?,iis,authentication,iis-7,Iis,Authentication,Iis 7,我正在开发一个ASP.NETMVC站点,该站点对应用程序的一部分使用表单身份验证。在开发过程中,我需要能够让外部各方访问托管站点的开发服务器。由于我不想将该网站暴露于整个互联网,我需要在允许使用表单身份验证的同时对其进行密码保护 混合使用Windows和窗体身份验证不起作用。有没有一个标准的方法可以做到这一点?我不得不认为这是一种常见的情况。关于MSDN的文章似乎不适用于我的情况: 更新:前两个答案建议添加标准IIS基本/摘要身份验证。据我所知,这与表单身份验证不兼容,因为用户的身份将设置为Wi

我正在开发一个ASP.NETMVC站点,该站点对应用程序的一部分使用表单身份验证。在开发过程中,我需要能够让外部各方访问托管站点的开发服务器。由于我不想将该网站暴露于整个互联网,我需要在允许使用表单身份验证的同时对其进行密码保护

混合使用Windows和窗体身份验证不起作用。有没有一个标准的方法可以做到这一点?我不得不认为这是一种常见的情况。关于MSDN的文章似乎不适用于我的情况:


更新:前两个答案建议添加标准IIS基本/摘要身份验证。据我所知,这与表单身份验证不兼容,因为用户的身份将设置为Windows帐户,而不是通过表单身份验证使用的身份。我需要两者完全独立。有什么想法吗?

您可以在IIS中保护它,将这些详细信息提供给外部各方,并保持表单身份验证不变。

禁用匿名访问,以强制用户在访问站点之前通过windows帐户登录。

很遗憾,您尝试的操作在IIS7(集成模式)中是不可能的,但有一个解决办法。我建议你写的是Mike Volodarsky,他是微软IIS7的前项目经理。这篇文章解决了您的问题,甚至有一个示例代码可以使用

我认识一个人,他用Apache和反向代理做了这件事


问题在于,他们无法访问站点的表单保护部分,因为他们的用户将被设置为Windows帐户,这与他们的站点帐户无关。实际上不是这样——禁用匿名访问会强制用户进行Windows登录以访问页面。表单的东西可以在它后面工作。这里的关键是禁用匿名访问,同时不添加其他形式的身份验证。也许我遗漏了什么。在IIS 7中只启用表单身份验证,当访问该站点时,我会被重定向到表单身份验证登录url,该url会显示标准的IIS 401未经授权错误。我想要的是一个Windows提示符。啊,从来没有提到过IIS7,我错过了标签。从这个角度来看,也许你可以调整配置,要求所有东西都有经过身份验证的用户,甚至是网站的“公共”部分。在IIS7中没有真正的好方法,否则。另一个想法——我认为你可以禁止匿名用户读取文件夹并强制http身份验证提示,即使在IIS7上也是如此。不过我还没有试过。我实际上喜欢反向代理的想法,但我不想把Apache加入其中。我将看看IIS的ARR是否能够做到这一点。