【发布时间】:2019-05-02 20:01:33
【问题描述】:
根据我的研究,如果以下情况属实,UWP 托管的应用应该能够使用当前用户在 web 服务/网页上进行身份验证:
能力:
- 企业认证
- 专用网络(客户端和服务器)
- 互联网客户端
但是 - 我遇到以下情况:
- 如果我在网页上禁用匿名身份验证:
- Hosted-App 尝试加载页面,得到 401(带有“WWW-Authentication: Negotiate and WWW-Authentication: NTLM”)然后.....只是坐在那里,什么都不做(没有登录对话框,没有错误,只是显示启动画面)
- 如果我启用匿名身份验证,但 [授权] 我的控制器:
- 初始页面加载正常(当然……没有身份验证)
- 第一次调用 web 服务将显示登录对话框,后续调用正常。
所以 - 我的问题:
- 我想要的(自动使用当前登录的用户进行身份验证)甚至可能吗?
- 如果是,我的问题可能是什么?
提前致谢
约翰内斯·科尔姆塞
更新:
似乎(我在过去一小时所做的所有观察 - 以下都是“从远程 PC 连接到主机 PC”):
- 我的 Kerberos 设置被搞砸了(如果您安装 Forefront - 它会设置所有内容以便 它 正常工作,但没有别的....
- 修复后 - 我可以使用“常规浏览器”连接到页面
- 但是 - 如果我从 UWP-App 尝试它,会发生这种情况:
- 如果我使用 IP 地址 - 在服务器的第一个“401”响应之后......什么都没有
- 如果我使用“主机名”(不是 FQDN) - 与服务器通信 3 次 (3x 401) - 在此之后,应该显示一个对话框,但它没有。
- 很遗憾,我无法使用 FQDN(一些名称解析问题 idk...)
两者 - IP 地址和主机名在“常规浏览器”中都能正常工作。 我现在无法试用 HTTPS(浏览器我可以因证书问题而关闭,UWP 托管我不能)
现在....来自“本地到本地”连接的一些观察结果:
- 主机名:自动获取当前用户
- 本地主机:相同
- IP 地址:位于初始屏幕上
在这种情况下,我无法查看网络流量(没有提琴手或其他方式)。
明天可能会有更多信息。
【问题讨论】:
-
你当前的用户能登录成功吗?
-
当我在执行 WebAPI 调用时弹出的登录对话框中输入当前用户时 - 是的。问题是,它不是“自动使用”
-
你的意思是每次都要输入用户名密码对吧?
-
我第一次调用 WebAPI 控制器。后续调用将使用该用户。
-
如果我“禁用匿名”身份验证”,则没有登录对话,应用程序在收到 401 响应后只是“放弃”(这似乎是“OK”....从 IIS 发送的 WWW-Authenticate 标头似乎没问题)(在加载 index.html 时放弃)
标签: uwp windows-runtime hosted-app