在IIS6上,使用NTLM身份验证(意味着集成Windows身份验证),如果用户取消了身份验证请求,如何将它们重定向到另一个页面?我不能只在web.config中获取401(尝试)或401.1(不是int)。
如果问题是401状态,我将无法重定向,因为我有意推动401获得响应,是吗?那么当他们在浏览器挑战赛中被取消时,我该如何捕获?
[为了澄清,如果我打开Firefox并导航到IWA页面,它将显示一个对话框(假设我尚未在about:config中进行配置),然后键入要使用的Windows凭据。我要防止他们阻止该框。
我希望在IIS6 / 7上每个应用都具有这种行为。我最初是在迁移到IIS7之前问过的,因此可以在两者之间更改任何答案。
我需要根据用户取消401 Auth请求(意味着401.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+,以及使用集成管道模式时的情况。根据您的应用程序,这可能会有一些限制。