使用 IIS 和移动设备进行 Windows 身份验证

使用 IIS 和移动设备进行 Windows 身份验证

我有一个 ASP.NET MVC 5 应用程序,它使用 Exchange Web Services Managed API 从本地 Exchange 查询数据,并在 Server 2012 R2 上的 IIS 8.5 中的 Intranet 站点主机上显示数据。我使用 Windows 身份验证来保护站点。

问题是移动设备(及其浏览器)在打开网站时没有收到登录提示,并立即收到 401 访问被拒绝错误(凭据无效)。

以下是可以工作的设备:

  • 已加入域的 Windows 8 PC,装有 Opera/IE/Firefox(我的开发机器)
  • 未加入域且使用 IE/Firefox 的 Windows 7 PC
  • Windows Phone 8 模拟器(在开发机器上)

以下是无法工作的设备:

  • 带有 Edge 的 Windows 10 手机
  • 配备原装浏览器/Chrome/Firefox/Opera 的 Android 平板电脑

正常工作的设备会收到登录提示,无法正常工作的设备则不会。

来自 IIS 的配置:

  • 内核模式已启用
  • 应用程序池作为域帐户运行
  • 在机器账户上设置 SPN(http/ & http/)
  • applicationhost.config 中的 useAppPoolCredentials 设置为 false
  • ASP.Net 模拟已关闭
  • 匿名身份验证已关闭,Windows 身份验证已打开
  • 提供者:Negotiate、NTLM(按特定顺序)

有人可以帮忙吗?

答案1

看来我的配置没问题。但事实证明,Windows 10 Mobile 上的 Edge 尚不支持 Windows 身份验证(哦,真讽刺),Android 平板电脑上的浏览器也不支持 Windows 身份验证。所以这对我来说几乎是一个过早的假设。我希望这仍然能对某些人有所帮助。

解决方案:测试更多设备,并确定您正在测试的浏览器是否可以使用 Windows 身份验证。专业提示:您可以使用 Sophos 或 TMG 等网关来解决此问题,因为您将看到一个通过 Windows 身份验证内部传递凭据的登录表单,因为 Kerberos 无法通过 WAN 工作(无法连接到 DC)。

相关内容