集成的Windows身份验证每个应用程序如果用户取消请求,我可以将其重定向到另一页吗?

StackOverflow https://stackoverflow.com/questions/2541701

编辑 〜更新了标题和问题主体:这是编辑。

我希望在IIS6/7上进行这种行为。最初,我在迁移到IIS7之前就问了一下,因此两者之间可以更改任何答案(从那以后我学到了一些有关IIS7的知识;]),但是我正在寻找可以正常工作的答案。

我需要根据用户取消401 auth请求的用户(含义401.1错误代码)重定向到每个应用程序。希望这可以帮助。


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

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

为了确认我很清楚:如果我打开Firefox并导航到IWA页面,它显示了一个对话框(假设我尚未将其配置为:Config),并且我在Windows凭据中键键入要使用。我想防止他们停止那个盒子。

有帮助吗?

解决方案

我知道这是旧的,但是有些响应类型没有传递给.NET进行处理。相反,它们必须在IIS级别进行处理。如果您希望根据响应进行不同的页面,那么您需要转到IIS Manager并找到控制错误页面的部分(根据您使用的IIS版本的不同。

然后添加您要捕获的状态代码,并将其输入您希望浏览器的页面。

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

更新:
我找到了一些新信息。您可以在Web.config中处理此操作。有关更多详细信息,请参见以下网站: Learn.iis.net

在您的Web的错误部分中,请执行以下操作(例如):

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

我不知道您是否可以为此使用.aspx页面,但是看起来像是这样。但是,他们可能必须完全自我包含。

Microsoft文档 替代码在MSDN上. 。根据他们的说法,它仅在IIS 7,.NET 3.0+以及使用集成管道模式时起作用。根据您的应用程序,这可能有些限制。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top