我发誓我几周前就提出过一个有关此的问题,但也许我删除了它,因为我无法在任何地方找到它。
- ASP.NET 4.0
- 互联网信息服务
- Windows 服务器 2003
- 使用 Windows 身份验证的 Intranet 站点
- 三台服务器具有相同的操作系统和 IIS 版本,每台服务器托管同一网站的开发、生产和灾难恢复 (DR) 版本
现在考虑以下事件顺序:
- 用户最初使用 IE8 以及任何版本的 FF 和 Chrome
- 用户只能访问 DR 站点。登录提示拒绝使用其他站点的 Windows 凭据对其进行身份验证,因此他们无法登录
- 他们安装了全新的 Windows 7 并升级到 IE9。现在他们能够在 IE9 中访问开发和 DR 网站。他们能够在 Chrome 中访问所有三个网站。
我在互联网设置中验证了以下内容:
- 使用当前用户名和密码自动登录
- 启用集成 Windows 身份验证
我在 MSKB 上发现了这一点: http://support.microsoft.com/kb/215383
NTAuthenticationProviders 元数据库属性未定义,因此 IIS 应该Negotiate,NTLM
默认使用。
其他详情:
- 这种情况几周前才开始出现。用户可以使用 IE8 顺利访问我们的网站。
- 没有其他用户遇到此问题。
有人知道是什么原因导致他的浏览器不向服务器发送身份验证信息吗?以下是用户看到的身份验证窗口的屏幕截图:
额外细节
以下是此用户的安全事件查看器中显示的内容。我用 删除了敏感信息?
。
事件类型:成功审核 事件来源:安全 事件类别:登录/注销 事件 ID:538 日期:2014 年 7 月 14 日 时间:下午 1:27:37 用户:?\? 电脑: ? 描述: 用户注销: 用户名: ? 领域: ? 登录 ID:(0x0,0x3F99497F) 登录类型:3 事件类型:成功审核 事件来源:安全 事件类别:登录/注销 事件 ID:540 日期:2014 年 7 月 14 日 时间:下午 1:27:14 用户:?\? 电脑: ? 描述: 网络登录成功: 用户名: ? 领域: ? 登录 ID:(0x0,0x3F997233) 登录类型:3 登录过程: NtLmSsp 身份验证包:NTLM 工作站名称:? 登录 GUID: - 呼叫者用户名:- 呼叫者域:- 来电者登录 ID:- 调用者进程 ID: - 过境服务:- 源网络地址:? 源端口:16220
答案1
启用自动 NTLM 识别的步骤如下。
IE浏览器
- 从 IE 中,通过“IE -> 工具 -> Internet 选项”或通过控制面板 -> Internet 选项访问 Internet 设置
- 转到“安全”选项卡
- 点击网站
- 单击本地 Intranet 或受信任的站点
- 将您的网站添加到列表中
- 如果需要,请取消选中“要求对该区域中的所有站点进行服务器验证(https:)”
- 单击“关闭”
- 单击“自定义级别”
- 在“用户身份验证/登录”下向右滚动到底部,并确保选中“使用当前用户名和密码自动登录”。
- 单击“确定”
谷歌浏览器
Google Chrome 实际上使用与 IE 相同的设置,即上面的控制面板 -> Internet 选项设置,因此无需执行其他操作。
火狐
- 打开 Firefox 并在地址栏中输入“about:config”(不带引号)
- 在“过滤器”字段中输入
network.automatic-ntlm-auth.trusted-uris
- 双击上述内容并输入网站或整个域名的 URL,以逗号分隔
- 如果您的网站不使用 FQDN(例如,
http://intranet
而不是http://intranet.domain.com
),还请执行以下操作:- 设置
network.automatic-ntlm-auth.allow-non-fqdn
为 true - 设置
network.negotiate-auth.allow-non-fqdn
为 true
- 设置