【发布时间】: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)
复制步骤
- 创建一个新的 Xamarin.Forms PCL 项目。
- 选择上述 ADAL 软件包版本之一并将其添加到 PCL。
- 将相同的包版本添加到 Xamarin.Android 项目。该库将安装成功,但在 Visual Studio 的“错误列表”选项卡中会出现缺少资源的错误。
【问题讨论】:
标签: c# azure xamarin.android xamarin.forms adal