【问题标题】:Missing Resources after installing ADAL Package for Xamarin.Forms PCL为 Xamarin.Forms PCL 安装 ADAL 包后缺少资源
【发布时间】:2016-11-22 23:06:47
【问题描述】:

我正在开发 Xamarin.Forms PCL 移动应用程序,需要访问需要通过 Azure 进行身份验证的内部 API。我的同事给了我一个可以在控制台应用程序中使用的代码 sn-p,我正在尝试将其调整为适用于我的移动应用程序。

我能够成功地将ADAL package 添加到 PCL。但是,身份验证要求我为每个特定于平台的版本传递一组PlatformParameters。当我尝试将 ADAL 包添加到 Xamarin.Android 项目时,我的 Resource.Designer.cs 文件中出现以下错误:

ERROR: 'Resource.Id' does not contain a definition for 'agentWebView'
ERROR: 'Resource.Layout' does not contain a definition for 'WebAuthenticationBroker'

Resource.Designer.cs 中相关(自动生成的)代码行是:

global::Microsoft.Experimental.IdentityModel.Clients.ActiveDirectory.Resource.Id.agentWebView = global::MissionControlAuth.Droid.Resource.Id.agentWebView;      
global::Microsoft.Experimental.IdentityModel.Clients.ActiveDirectory.Resource.Layout.WebAuthenticationBroker = global::MissionControlAuth.Droid.Resource.Layout.WebAuthenticationBroker;

这些缺失资源的名称表明我需要将 ADAL 包指向可用于向用户显示登录页面的 web 视图。不幸的是,我无法在 StackOverflow 或 Xamarin 论坛上找到任何提及此内容的内容。如何为我的 Xamarin.Forms PCL 正确设置 ADAL 包?

平台/库版本

  • .NET Framework 4.5
  • 面向 Xamarin.Android 和 UWP 的 Xamarin.Forms v2.0.0.6482
  • Visual Studio 2015
  • Microsoft.IdentityModel.Clients.ActiveDirectory v3.5.207081303-alpha (relevant answer)
    • 或者,Microsoft.Experimental.IdentityModel.Clients.ActiveDirectory v4.0.209160138-alpha (relevant answer)

复制步骤

  1. 创建一个新的 Xamarin.Forms PCL 项目。
  2. 选择上述 ADAL 软件包版本之一并将其添加到 PCL。
  3. 将相同的包版本添加到 Xamarin.Android 项目。该库将安装成功,但在 Visual Studio 的“错误列表”选项卡中会出现缺少资源的错误。

【问题讨论】:

    标签: c# azure xamarin.android xamarin.forms adal


    【解决方案1】:

    不支持实验库。请切换到https://www.nuget.org/packages/Microsoft.Identity.Client提供的 MSAL

    【讨论】:

    • 就像我在原帖中所说的,我也尝试了非实验性 ADAL v3.5.207081303-alpha 版本,并且出现了同样的错误。另外,我之前研究过 MSAL,根据文档,它不支持预先存在的 Azure AD。有没有办法解决这个问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    相关资源
    最近更新 更多