IIS 和 Windows 身份验证不允许错误页面
IIS and Windows authentication not allowing error pages
过去两天我一直在尝试这个。我没有得到什么问题。我在网上搜索但没有找到任何解决方案。我尝试了 IIS 的所有设置,例如 "Moving negotiate down, disable other authentication",但没有用。所以这是我的问题:
我在 ASP.NET 中有一个 Intranet Web 应用程序,它使用存储在 Active Directory 中的用户名和密码。我的应用程序中有五个不同的页面。所有页面及其 web.config 文件都存储在单独的文件夹中。这些 web.config 文件包含允许像这样查看该页面的用户的名称。
<authorization>
<allow users="Domainname\username"/>
</authorization>
我想将那些不在上面列表中的用户重定向到其他带有适当消息的错误页面。我用过这个
protected void Application_EndRequest(object sender, EventArgs e)
{
if (HttpContext.Current.Response.Status.StartsWith("401"))
{
HttpContext.Current.Response.ClearContent();
Response.Redirect("~/myerrorpage.aspx?myerrormsg=you are not allowed");
}
这在 Localhost 中有效,但是当我将我的应用程序放入 IIS 中时,所有授权用户(那些在列表中的用户)也会重定向到错误消息页面。
当我从 IIS 中删除它时,它可以正常工作,但我无法将未经授权的用户重定向到错误消息页面。我也试过 IIS 的错误页面设置,但遇到同样的问题。
请建议我该怎么做?还有其他方法吗?
如果您正在使用 Windows 身份验证,那么您应该牢记这一点 -
如果您在 IIS 中手动启用 windows 身份验证,请不要在您的 web.config
中包含以下代码
<authentication mode="Windows" />
如果你使用它,它会导致与我上面在我的问题中所述相同的问题。
过去两天我一直在尝试这个。我没有得到什么问题。我在网上搜索但没有找到任何解决方案。我尝试了 IIS 的所有设置,例如 "Moving negotiate down, disable other authentication",但没有用。所以这是我的问题: 我在 ASP.NET 中有一个 Intranet Web 应用程序,它使用存储在 Active Directory 中的用户名和密码。我的应用程序中有五个不同的页面。所有页面及其 web.config 文件都存储在单独的文件夹中。这些 web.config 文件包含允许像这样查看该页面的用户的名称。
<authorization>
<allow users="Domainname\username"/>
</authorization>
我想将那些不在上面列表中的用户重定向到其他带有适当消息的错误页面。我用过这个
protected void Application_EndRequest(object sender, EventArgs e) {
if (HttpContext.Current.Response.Status.StartsWith("401"))
{
HttpContext.Current.Response.ClearContent();
Response.Redirect("~/myerrorpage.aspx?myerrormsg=you are not allowed");
}
这在 Localhost 中有效,但是当我将我的应用程序放入 IIS 中时,所有授权用户(那些在列表中的用户)也会重定向到错误消息页面。
当我从 IIS 中删除它时,它可以正常工作,但我无法将未经授权的用户重定向到错误消息页面。我也试过 IIS 的错误页面设置,但遇到同样的问题。
请建议我该怎么做?还有其他方法吗?
如果您正在使用 Windows 身份验证,那么您应该牢记这一点 - 如果您在 IIS 中手动启用 windows 身份验证,请不要在您的 web.config
中包含以下代码<authentication mode="Windows" />
如果你使用它,它会导致与我上面在我的问题中所述相同的问题。