【发布时间】:2019-06-21 22:43:15
【问题描述】:
安装 nuget 包 Microsoft.IdentityModel.Clients.ActiveDirectory 后
我尝试通过
获取令牌
string cloud = "https://login.microsoftonline.com/common/oauth2";
string tenantId = App.tenantId;
string authority = $"{cloud}/{tenantId}";
//
string clientId = App.clientId;
Uri redirectUri = App.redirectUrl;
string resource = clientId;
AuthenticationResult authResult = null;
AuthenticationContext authContext = new AuthenticationContext(authority);
try
{
if (authContext.TokenCache.ReadItems().Count() > 0)
{
authContext = new AuthenticationContext(authContext.TokenCache.ReadItems().First().Authority);
authResult = await authContext.AcquireTokenSilentAsync(resource, clientId);
}
else
{
authResult = await authContext.AcquireTokenAsync(resource, clientId, redirectUri, new PlatformParameters(PromptBehavior.Auto));
}
}
catch (AdalSilentTokenAcquisitionException ee)
{
authResult = await authContext.AcquireTokenAsync(resource,clientId, redirectUri,null);
}
当我尝试构建时,出现以下错误
无法从“Microsoft.IdentityModel.Clients.ActiveDirectory.PromptBehavior”转换为“Android.App.Activity”
无法从“Microsoft.IdentityModel.Clients.ActiveDirectory.PromptBehavior”转换为“UIKit.UIViewController”
导致此错误的行是触发错误的行
authResult = await authContext.AcquireTokenAsync(resource, clientId, redirectUri, new PlatformParameters(PromptBehavior.Auto));
我该如何解决这个问题?
- Xamarin 版本为 4.0.0.482894
- Microsoft.IdentityModel.Clients.ActiveDirectory 版本 5.1.0
- 视觉工作室 2017
【问题讨论】:
-
嘿,Akoh,您能否与我们分享更多代码。你把这段代码放在什么文件里?也许是您的 Git 存储库的链接?
-
@Saamer 感谢您与我们联系。我已经创建了一个要点,请看一下。
-
@Saamer 这里gist.github.com/ideal-it-solutions/…
标签: xamarin.forms xamarin.android xamarin.ios azure-active-directory adal