如何使用当前 Windows 登录用户验证 UWP 应用程序

Posted

技术标签:

【中文标题】如何使用当前 Windows 登录用户验证 UWP 应用程序【英文标题】:How to Authenticate UWP app using Current Windows LoggedIn user 【发布时间】:2017-01-02 17:52:41 【问题描述】:

目前,我的企业 UWP 应用使用来自用户的 AD 用户名和密码进行身份验证,用户通常与 Windows 登录用户相同。我需要删除此要求并让用户根据当前 Windows 用户直接登录到应用程序。 我一直在搜索很多,发现它是为网站但不是为应用程序。我正在使用以下客户端:

var filter = new HttpBaseProtocolFilter();
Windows.Web.Http.HttpClient client = new Windows.Web.Http.HttpClient(filter);
client.GetAsync(url);

是否有任何资源可以在 UWP 应用中完成 Windows 单点登录身份验证?

编辑: 一些解决方案是特定于 Azure 目录的,但在我的情况下,它可能并不总是 Azure 目录,但它可能是具有域凭据 (ADFS) 的企业 Active Directory,并且使用 UWP 应用程序的用户将使用与 Windows 登录凭据相同的凭据登录。因此,我一直在寻找解决方案,在该解决方案中,当前 Windows 登录用户无需再次输入凭据即可登录。它可能类似于 Chrome/IE 浏览器自动登录到 Intranet 站点。

【问题讨论】:

用户登录后,您要获取哪些数据? 数据是带有 xml 输出的 API 调用。但身份验证类型是 NTLM,需要域凭据 【参考方案1】:

您可以使用以下示例作为参考:Web Account Management Sample。

它展示了如何获取 Azure AD 的令牌。这可能是一个很好的起点。

【讨论】:

这是使用 Azure 目录,但在我的情况下,它可能并不总是 Azure 目录。它是具有域凭据 (ADFS) 的企业 Active Directory,并且使用 UWP 应用程序的用户将使用相同的凭据登录。因此,我正在寻找当前登录用户可以提供其权限的解决方案。它可能类似于 Chrome/IE 浏览器自动登录到 Intranet 站点。 投反对票。该示例显示了使用 Azure Ad 和 Microsoft 帐户进行的身份验证。它没有显示与问题所要求的常规内部活动目录的身份验证

以上是关于如何使用当前 Windows 登录用户验证 UWP 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

UWP/C# 应用程序如何登录 Xbox 用户并显示玩家代号?

UWP 应用程序设置默认代理和默认 Windows 身份验证

ADAL AcquireToken Windows 身份验证 UWP

如何从 ASP.NET 页面获取当前登录的 Windows 帐户?

如何在 asp.net 中使用 Windows 身份验证获取用户名?

使用 ASP.NET 表单身份验证时如何获取当前登录用户的用户 ID?