对于 Kerberos 由于没有足够的缓冲区而失败 Internet Explorer 登录

文章翻译 文章翻译
文章编号: 277741 - 查看本文应用于的产品
重要本文包含有关如何修改注册表的信息。请确保您对其进行修改之前备份注册表。请确保您知道如何还原注册表发生问题。有关如何备份、 还原,以及修改注册表的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986在 Microsoft Windows 注册表的说明
展开全部 | 关闭全部

本文内容

症状

连接到 Internet 信息服务器 (IIS) 服务器配置为 Windows 2000 身份验证的过程向用户显示与 输入网络密码 对话框。用户试图登录。凭据不请求而提供,然后显示,即使是有效的凭据如下的错误页:
您没有权限查看此页。您没有权限查看此目录或页使用您提供的凭据。

原因

凭据有效以及可以利用通过 net use 命令,Windows NT 服务器服务通过访问同一个系统。但是,Wininet 可能不能为包含用户的 Kerberos 令牌分配足够的缓冲区。如果用户是超过 100 个的组的成员,例如,这可能会发生。

解决方案

此问题涉及一个 Internet Explorer wininet 缓冲问题。若要解决此问题,应用以下修补程序、 Windows 2000 Service Pack 2 (SP2) 或的 Internet Explorer 更新,然后设置在所有客户端计算机上的 MaxTokenSize 注册表参数 (如本文"更多信息"一节所述)。

可以从 Microsoft 获得支持的修补程序。但是,此修补程序被用于解决本文所述的此问题。此修补程序仅应用于出现这一特定问题的系统。

是否可供下载此修补程序没有"提供修补程序下载"部分中,在这篇知识库文章的顶部。如果未出现本部分,将申请提交到 Microsoft 客户服务和支持以获取此修复程序。

注意如果出现其他问题,或者如果需要进行任何故障诊断,则您可能不得不创建单独的服务请求。将正常收取支持费用将应用于其他支持问题和不需要进行此特定的修补程序的问题。有关完整列表的 Microsoft 客户服务和支持的电话号码,或创建一个单独的服务请求,请访问下面的 Microsoft 网站:
http://support.microsoft.com/contactus/?ws=support
注意"提供修补程序下载"窗体所显示的此修复程序是可用的语言。如果您看不到您的语言,则是一个修复程序不能用于该语言。此修复程序的英文版应具有以下文件属性或更高版本:
   Date        Time    Version      Size    File name
   --------------------------------------------------
   10/13/2000  04:35p 5.0.3210.1300 459,536 Wininet.dll

				

替代方法

减少组的成员的用户数。

状态

Microsoft 已经确认这是 Microsoft Windows 2000 中的问题。

更多信息

有关如何一次安装 Windows 2000 和 Windows 2000 修补程序的详细信息单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
249149安装 Microsoft Windows 2000 和 Windows 2000 修补程序
注意本文的"解决方案"一节中所述的修补程序取代了最初在下面的 Microsoft 知识库文章中提供此热修复程序:
269643由于的不足,无法连接到 IIS 缓冲区不起作用的 Internet 浏览器 Kerberos 身份验证
警告如果您修改注册表错误地使用注册表编辑器或使用另一种方法,则可能会出现严重问题。这些问题可能需要重新安装操作系统。Microsoft 不能保证可以解决这些问题。修改注册表的风险由您自己承担。
此修补程序提供了可用于增加 Kerberos 令牌大小的注册表参数。例如对于提高为 65 KB 令牌将允许存在多个 900 组中的用户。由于要关联的安全的标识符 (SID) 信息此数目可能会有所不同。

若要设置此参数,执行以下操作:
  1. 启动注册表编辑器 (Regedt32.exe)。
  2. 找到并单击以下注册表设置:
    System\\CurrentControlSet\\Control\\Lsa\\Kerberos\Parameters
  3. 编辑 菜单上单击 添加值,然后添加以下注册表值:
    值名称: MaxTokenSize
    数据类型: REG_DWORD
    基数: 十进制
    值数据: 65535
  4. 退出注册表编辑器。
默认值为 MaxTokenSize 是 12000 十进制。Microsoft 建议您将此值设置为 65535 十进制,FFFF 十六进制。如果设置此值不正确到 65535 十六进制 (一个极大的值) Kerberos 身份验证操作可能会失败的程序将返回错误。 有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
297869SMS 管理员问题后,修改 Kerberos MaxTokenSize 注册表值
您将此值设置和计算机更新后,重新启动计算机。虽然您必须分别更新域控制器,您可以使用组策略设置也已更新的客户端计算机的设置此值。您必须配置与此注册表修改域中的所有客户端系统和服务器,并使用 Windows 2000 SP2 或者修复程序更新系统。

有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
313661FIX: 错误消息: 当您连接到 SQL Server,通过 TCP/IP 和 Kerberos MaxTokenSize 大于 0xFFFF"超时已过期"时发生
300367DCOM 客户端可能会使网络上的内存
Kerberos 令牌的大小配置和 $ 在 Windows 2000 支持的详细信息单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
263693组策略可能不会应用到属于许多组的用户

重现行为的步骤

  1. 创建一个 Windows NT 帐户。
  2. 请确保安装了 Active Directory,并且配置集成身份验证。
  3. 将帐户添加到大约 100 不同的组。
  4. 创建第二个帐户,并将其添加到组中的三个。
结果:
第一个帐户不能通过 http:// <servername>浏览,但第二个帐户。
注意下面的脚本从该 reskit 使用 Creategroup.vbs 用于重现该问题:
CreateGroup.vbs from the resource kit is a viable method for doing so.
creategroup LDAP: DC=Domain,DC=Org,DC=Company,DC=com GroupName1
CN=administrator,CN=Users,DC=Domain,DC=Org,dc=Company,dc=com password
creategrp.log
...
					

属性

文章编号: 277741 - 最后修改: 2007年2月21日 - 修订: 5.7
这篇文章中的信息适用于:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
关键字:?
kbmt kbautohotfix kbhotfixserver kbbug kbfix kbqfe KB277741 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 277741
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com