使用Windows身份验证的ASP.Net网站弹出;“需要身份验证的窗口”;Firefox中有很多

使用Windows身份验证的ASP.Net网站弹出;“需要身份验证的窗口”;Firefox中有很多,asp.net,firefox,windows-authentication,Asp.net,Firefox,Windows Authentication,我有一个ASP.Net应用程序,其中我使用Windows身份验证来拒绝通过角色访问某些组件。当使用IE时,站点会弹出一次“需要验证”框,允许用户输入他们的Active Directory用户名/密码,一切正常 然而,当使用Firefox时,会弹出“需要验证”框,但当您单击“确定”时,它会再次出现!它能撑上几十次!如果您单击“取消”以全部删除,则会正常失败,拒绝访问该站点。如果对除1之外的所有对象单击“取消”(您正确验证了1),则其行为就像您已正确验证一样 我的目标是让Firefox表现得像IE一

我有一个ASP.Net应用程序,其中我使用Windows身份验证来拒绝通过角色访问某些组件。当使用IE时,站点会弹出一次“需要验证”框,允许用户输入他们的Active Directory用户名/密码,一切正常

然而,当使用Firefox时,会弹出“需要验证”框,但当您单击“确定”时,它会再次出现!它能撑上几十次!如果您单击“取消”以全部删除,则会正常失败,拒绝访问该站点。如果对除1之外的所有对象单击“取消”(您正确验证了1),则其行为就像您已正确验证一样


我的目标是让Firefox表现得像IE一样,并且只询问用户一次。

通过将站点添加到浏览器中,可以让Firefox表现得像IE一样 关于:配置>> network.automatic-ntlm-auth.trusted-uris
然后firefox将在站点上使用Windows Auth

也许最好重新设计您的登录/身份验证系统,以便仅当用户首次查看/登录网站时(即login.aspx页面)才会请求身份验证因此,在这之后,用户的凭据将在整个网站中缓存。

此论坛帖子建议更新您的web.config以允许在WebResource.axd上使用anon:

不理想-我真的不明白为什么axd请求的行为是这样的


注意:NTLM需要保持活动状态,如果您安装fiddler或firebug,您应该能够在请求头中看到“Connection:keep alive”消息:

这实际上不起作用,它仍然会多次请求凭据。我的另一个问题是我不能完全控制用户的环境。你在IIS日志中看到了什么?打开所有日志记录。您应该看到状态401,后面是200,其中包括您期望的cs用户名。比较IE/Firefox的日志结果。再想一想——是否有可能是公司代理在碍事?如果是这样的话,你在firefox的日志中看不到任何东西。我正在访问本地主机,所以我不认为是代理。似乎所有WebResource.xsd请求都在提示请求额外的身份验证。IE似乎在“缓存”整个站点的安全性,因此它不会对系统上的每个文件都失败。知道为什么会发生这种情况吗?当你在日志中查看时,firefox在你输入密码后是否成功地获得了axd?或者它是否继续被拒绝?如果我每次正确输入用户名和密码,它会正确地获得代码200。然而,它似乎有大量正在执行的axd请求,以及一些其他文件。我已经将我的网络配置切换为只覆盖单个aspx页面(通过位置选项卡),但它并没有停止!firefox似乎没有像IE那样正确缓存登录信息。这就是WindowsAuth应该如何工作的。它通过普通浏览器弹出窗口询问身份验证信息(如果浏览器未发送正确的身份验证信息,则返回401)。IE似乎在为整个下载事务“缓存”这一点,但Firefox似乎没有。我开始认为这是firefox的一个不恰当的实现。从你给我的信息中,我发现:这基本上和我遇到的问题相同。此外,我使用了“摘要身份验证”而不是“集成身份验证”。现在,如果用户有权限,它甚至会使用当前帐户。谢谢断开链接-StackOverflow上未共享羞耻信息:(