小编Adr*_*aus的帖子

错误MT2001:无法链接程序集。原因:处理参考时出错

我在尝试构建引用.NET Standard 2.0库的Xamarin.iOS项目时遇到此错误。

在线的MT2001问题似乎都不存在这种特定的“处理引用时出错”的原因,因此我对如何诊断这一点感到迷惑。我已经尽我所能地调整和摆弄任何人,并保持理智,但我真的在黑暗中。

外面有人可以指出我的方向吗?

xamarin.ios xamarin xamarin.forms

6
推荐指数
1
解决办法
4548
查看次数

Azure AD B2C - 如何将新用户声明传播到访问令牌

我正在使用 Azure AD B2C 对我的移动应用程序的用户进行身份验证。我在设备上使用 Microsoft.Identity.ClientAcquireTokenSilentAcquireTokenInteractive管理用户身份验证状态。一切都很好。

当用户完成身份验证后,我的服务器将检查他们的 ID 以查看他们是否已在我的用户数据库中注册,如果没有,将询问他们的详细信息并保存。在这一点上,我有一个用户的本地唯一 ID,我想将其添加到他们的访问令牌中,以便其他服务可以使用它进行授权。所以我调用了 AD B2C 图 API 来设置一个 UserId 自定义属性。我已向 Azure AD B2C 注册了自定义属性,并且我的用户流都在应用程序声明下选择了 UserId,以便将其添加到 JWT。我基本上遵循此处描述的选项 1:将声明添加到令牌 Azure B2C 中。配置似乎是正确的,一切正常......

... 除了一件事。UserId 声明仅在用户注销并再次登录后出现在访问令牌中。

所以在用户通过身份验证后,我将他注册到我的数据库中,调用 Graph API 来设置他的 UserId 声明。此后,每当我在设备上获取令牌时,即使我使用WithForceRefresh(true),我也会得到一个没有 UserId 声明的令牌。如果我调用 Graph API,我可以看到该声明存在于用户的个人资料中,但它没有进入令牌。一旦用户注销并再次登录,他就会得到一个包含声明的令牌。

为了解决这个问题,我需要强制用户在注册后再次登录,这很愚蠢。或者,如果令牌中不存在缺失的信息,我需要调用 Graph API 并填写缺失的信息,这也是次优的。

我在这里缺少什么?强制 AD 使用新声明刷新用户的访问令牌而不需要用户再次登录的正确方法是什么?

更新 为了简单起见,我使用了 UserId 的示例,但正如 Jas 在下面指出的那样,我可以在注册时使用 REST API 声明交换设置类似的静态字段。所以为了让我的问题更完整,让我补充一点,我也希望能够在初始注册后更新声明。例如,一个用户可能在初始注册时被分配一个角色,然后被转移到一个不同的角色。我想更新用户的声明,以便我可以根据用户访问令牌中更新的声明对用户执行授权。但是,如果我不能保证这些声明始终是最新的,那么我将需要回退到我自己的数据库/服务,这将有效地使 AD B2C 成为没有授权实用程序的身份验证提供程序。

azure-ad-b2c

5
推荐指数
1
解决办法
1483
查看次数