返回

Windows 身份验证在 IIS 7.5 中不起作用?如何排除 401.1 错误?

windows

Windows 身份验证在 IIS 7.5 中不起作用?故障排除 401.1 错误

对于使用 IIS 7.5 本地的 ASP.NET 4.0 站点,启用 Windows 身份验证似乎是一个简单的过程,但对于许多开发者来说却并非如此。令人恼火的 401.1 错误似乎困扰着所有人,让人抓耳挠腮,无从下手。

但不要绝望!这个令人头疼的问题是有原因的,也有解决方案。我们来看看这个问题,深入了解导致错误的原因,并为您提供一个循序渐进的指南来解决它。

401.1 错误的幕后黑手

当您尝试使用 Windows 身份验证时遇到 401.1 错误,表示您的服务器拒绝了您的身份验证请求。这通常是因为客户端和服务器之间的身份验证凭据不匹配。

导致此问题的一些常见原因包括:

  • 匿名身份验证已启用: 匿名身份验证允许用户在不提供任何凭据的情况下访问您的网站。如果您启用了匿名身份验证,则它将优先于 Windows 身份验证,导致 401.1 错误。
  • 错误的 web.config 配置: 在 web.config 文件中正确配置身份验证设置至关重要。如果 节点未正确配置,IIS 将无法进行 Windows 身份验证。
  • IIS 身份验证设置不当: IIS 身份验证模块包含许多高级设置,可以影响身份验证过程。配置不当,例如启用扩展保护或内核模式身份验证,可能导致 401.1 错误。

排除故障并修复 401.1 错误

为了解决 401.1 错误,我们需要排除可能导致问题的因素,并逐步解决问题。

步骤 1:禁用匿名身份验证

首先,确保已禁用匿名身份验证。

  1. 打开 IIS 管理器。
  2. 导航到您的网站。
  3. 双击“身份验证”。
  4. 取消选中“匿名身份验证”复选框。

步骤 2:验证 web.config 设置

接下来,检查 web.config 文件中的身份验证设置是否正确。

  1. 打开 web.config 文件。
  2. 找到 <system.web> 节点。
  3. 在 <system.web> 节点中,确保 节点如下所示:
<authentication mode="Windows" />

步骤 3:检查 IIS 身份验证设置

现在,让我们查看 IIS 身份验证设置。

  1. 在 IIS 管理器中,导航到您的网站。
  2. 双击“身份验证”。
  3. 选择“Windows 身份验证”。
  4. 单击“编辑”按钮。
  5. 确保已禁用“扩展保护”和“内核模式身份验证”。

步骤 4:添加用户授权

如果上述步骤仍然无法解决问题,则可能是您的用户未被授权访问网站。

  1. 在 IIS 管理器中,导航到您的网站。
  2. 选择“授权规则”。
  3. 单击“添加授权规则”。
  4. 在“类型”字段中,选择“允许”。
  5. 在“用户或角色”字段中,输入要授予访问权限的用户名或角色。
  6. 单击“确定”。

步骤 5:排除其他问题

如果您仍然遇到 401.1 错误,则问题可能出在其他地方。

  • 检查文件系统权限以确保 IIS 具有对 web.config 文件和网站目录的访问权限。
  • 尝试重置 IIS 配置以排除任何潜在的配置问题。
  • 验证您的域控制器是否正常运行并且您的服务器已加入域。

常见问题解答

1. 为什么即使我已经启用了 Windows 身份验证,我仍然会收到 401.1 错误?

  • 确保已禁用匿名身份验证,并且 web.config 文件和 IIS 身份验证设置已正确配置。

2. 扩展保护是什么,我为什么要禁用它?

  • 扩展保护是一项 IIS 功能,旨在增强安全性和防止中间人攻击。但是,它可能会导致 401.1 错误,尤其是在您使用具有 Windows 7 或更高版本的客户端计算机时。

3. 我在哪里可以找到更多有关 IIS 身份验证的信息?

4. 我尝试了上述所有步骤,但仍然无法解决问题,该怎么办?

  • 尝试重置 IIS 配置,验证您的域控制器,并检查文件系统权限。

5. 我的网站使用的是 ASP.NET Core,而不是 ASP.NET 4.0,我该怎么办?

  • ASP.NET Core 身份验证设置与 ASP.NET 4.0 不同。请参阅 Microsoft 文档了解有关 ASP.NET Core 身份验证的更多信息。