c# - 在 Xamarin.Forms Droid 的 MSAL 中找不到 AuthenticationContinuationHelper 类

标签 c# android xamarin.forms azure-ad-b2c msal

我正在尝试创建一个新的 Xamarin Forms 应用程序,该应用程序使用 AAD B2C 租户进行身份验证。我的应用程序代码基于 GitHub ( https://github.com/Azure-Samples/active-directory-b2c-xamarin-native ) 上的官方示例,当我克隆它时,它会构建、运行并与我的租户进行良好的身份验证。

当我尝试使用 PCL 进行代码共享从头开始将此示例重新创建为新的 Xamarin Forms 应用程序时,我无法使其正常工作。首先,我必须将 PCL 配置文件从默认的 259 更改为 Profile7,以便能够安装 MSAL 1.1.0 版预览版。当我从 github 示例代码复制并粘贴代码到 Droid 版本的 Forms 应用程序时,我在 MainActivity.cs 中遇到两个问题

  • “UIParent' 不包含接受 1 个参数的构造函数”
  • “名称‘AuthenticationContinuationHelper’在当前上下文中不存在”

我尝试在 Mac 和 PC 上从头开始创建新项目。我还尝试复制每个项目的 packages.config,但没有运气让它在一个全新的新项目中工作。 Xamarin Forms IOS 项目可以使用带 1 个参数的构造函数并找到所需的 AuthenticationContinuationHelper 类。

有人知道我做错了什么吗?

最佳答案

MSAL NuGet 安装程序中某处存在错误。

当您在 Visual Studio 2017 (win) 或 Visual Studio for Mac 中创建新的 Xamarin Forms 应用程序解决方案时,Droid 项目会引用错误的 dll。

nuget 安装程序将“/packages/Microsoft.Identity.Client.1.1.0-preview/lib/netstandard1.3/Microsoft.Identity.Client.dll”中的 dll 安装到 Android 项目中。 PCL 和 iOS 项目获得正确的 dll

如果您手动删除引用的 netstandard1.3 dll 并从 monoandroid70 目录添加 dll,代码将再次运行。

我已在 MSAL 库项目中为此提交了一个问题:https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/issues/441

关于c# - 在 Xamarin.Forms Droid 的 MSAL 中找不到 AuthenticationContinuationHelper 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44780699/

相关文章:

c# - Xamarin.Forms - 更新 ItemSource 时 ViewCell 内的图像闪烁

c# - 将 SharePoint 文件夹和内容移动到同一文档库中的不同位置

android - 我应该将 viewModelScope.coroutineContext 传递给 liveData 构建器函数吗?

android - FirebaseCrashlytics : Create report HTTP request failed. okhttp3 超时

android - 如何创建项目的dll

javascript - termsAndCONditions 使用 WebView 和按钮滚动

c# - 连接失败后 FtpWebRequest 不继续

c# - 阻止进程创建 MessageBox

c# - 模拟 HttpMessageHandler 时未调用 SendAsync

android - 如何将返回的 JSON 的 HashMap 值归因于 RecyclerView 行中的 TextView