C# Azure中的设备

C# Azure中的设备,c#,asp.net,azure,azure-active-directory,token,C#,Asp.net,Azure,Azure Active Directory,Token,我正在使用生成令牌,我已经按照上面链接中提到的过程进行了操作。我已经在appsetting.json文件中提供了clientID,它一直保持 获取用户名失败错误 我已经使用管理员帐户生成了应用程序 错误截图: 根据我们的讨论,这个问题应该已经解决了。我将在这里总结解决方案 正如政府所说: 此示例演示如何从在服务器上运行的应用程序中使用MSAL.NET 已加入域或AAD已加入Windows计算机 因此,您需要使用AAD加入的Windows计算机来测试此示例 首先,你需要 然后,运行此示例时,可

我正在使用生成令牌,我已经按照上面链接中提到的过程进行了操作。我已经在appsetting.json文件中提供了clientID,它一直保持 获取用户名失败错误

我已经使用管理员帐户生成了应用程序

错误截图:


根据我们的讨论,这个问题应该已经解决了。我将在这里总结解决方案

正如政府所说:

此示例演示如何从在服务器上运行的应用程序中使用MSAL.NET 已加入域或AAD已加入Windows计算机

因此,您需要使用AAD加入的Windows计算机来测试此示例

首先,你需要

然后,运行此示例时,可能会遇到以下错误:
用户或管理员未同意使用ID为“{appId}”且名为“{appName}”的应用程序。

这是因为您尚未在AAD中获得此应用的用户许可。您需要调用
AcquireTokenInteractive
,而不是
PublicAppUsingIntegratedWindowsAuthentication.cs
文件第93行中的
AcquireTokenByIntegratedWindowsAuth
。然后再次调用
AcquireTokenByIntegratedWindowsAuth

现在,您可以让用户成功登录Windows计算机


更新:

基于,IWA仅支持联合用户,这意味着在Active Directory中创建并由Azure AD支持的用户。直接在Azure AD中创建的用户,如果没有Active Directory支持(托管用户),则无法使用此身份验证流


因此,如果您想使用IWA(集成Windows身份验证),您需要一个联邦帐户来测试它。

我测试了此示例,但没有收到此错误。请分享您的错误截图。此外,除了创建Azure AD应用程序并将客户端ID配置到
appsettings.json
文件中之外,您还做了其他任何事情吗?我收到此消息无法获取用户名按任意键退出此捕获(MsalClientException)您使用哪种帐户登录?是Azure广告用户还是个人帐户?Azure广告帐户我也尝试过。这表明我是一个错误的托管用户。我需要成为联邦用户,我不知道如何做到这一点。感谢您的答复,但如链接步骤4中所述。他们使用了contoso.com域,我使用了abc.onmicrosoft域。你认为这会给我带来麻烦吗。我用abc.onmicrosoft连接了设备。这是不是给我造成了问题?我再次尝试了你的解决方案,但它显示了相同的错误,无法获取用户名。我甚至将我的设备连接到azure广告,但仍然存在同样的问题。你能告诉我我是否要让我的设备混合使用吗?@user9107307如果你使用contoso.com或abc.onmicrosoft域,应该没有问题。您确定您的机器已连接吗?看。是的,我确定,我已经更新了屏幕截图。@user9107307我想你已经注意到可能的原因了。IWA仅支持联合用户,这意味着在Active Directory中创建并由Azure AD支持的用户。直接在Azure AD中创建但没有Active Directory支持的用户(托管用户)无法使用此身份验证流。我的测试帐户是一个联邦用户(我不是租户的管理员,但我只是从我们的管理员那里得到一个澄清,租户是联邦的)。如果您的帐户不是联合用户,您将无法获得预期的结果。