如果用户取消身份验证提示,我可以将用户重定向到另一个页面吗?

问题描述 投票:0回答:1

在IIS6上,使用NTLM身份验证(意味着集成Windows身份验证),如果用户取消了身份验证请求,如何将它们重定向到另一个页面?我不能只在web.config中获取401(尝试)或401.1(不是int)。

如果问题是401状态,我将无法重定向,因为我有意推动401获得响应,是吗?那么当他们在浏览器挑战赛中被取消时,我该如何捕获?

[为了澄清,如果我打开Firefox并导航到IWA页面,它将显示一个对话框(假设我尚未在about:config中进行配置),然后键入要使用的Windows凭据。我要防止他们阻止该框。

我希望在IIS6 / 7上每个应用都具有这种行为。我最初是在迁移到IIS7之前问过的,因此可以在两者之间更改任何答案。

我需要根据用户取消401 Auth请求(意味着401.1错误代码)来重定向每个应用程序,而不是每个服务器。

asp.net iis windows-authentication ntlm http-status-code-401
1个回答
1
投票

我知道这很旧,但是某些响应类型没有传递到.net进行处理。相反,它们必须在IIS级别进行处理。如果您想要基于响应的其他页面,则需要转到IIS管理器并找到控制错误页面的部分(根据您所使用的IIS版本的不同而有所不同。

然后添加您要捕获的状态代码,并将其指定给想要浏览器定向的页面。

我知道您提到IIS 6,但是我无法访问其中一台服务器。对于IIS 7,单击站点。转到IIS>错误页面部分。单击添加。输入代码(401.1),并为其提供指向您网站上页面的路径。确保匿名访问该页面。

UPDATE:我发现了一些新信息。您可以在web.config中进行处理。有关更多详细信息,请参见以下站点:learn.iis.net

在web.config的错误部分中,执行以下操作(作为示例):

 <error statusCode="401" subStatusCode="1" prefixLanguageFilePath="c:\inetpub\custerr" path="401_1.htm" />

我不知道您是否可以使用.aspx页面,但是看起来确实如此。但是,它们可能必须完全独立。

substatuscode is on MSDN上的Microsoft文档。根据他们的说法,它仅适用于IIS 7,.Net 3.0+,以及使用集成管道模式时的情况。根据您的应用程序,这可能会有一些限制。

© www.soinside.com 2019 - 2024. All rights reserved.