ADAL无法在Xamarin.PCL中使用管理员同意
ADAL:无法在Xamarin.PCL中将“prompt=admin_approve”用作额外的查询参数 当我试图在Xamarin PCL中使用以下代码时ADAL无法在Xamarin.PCL中使用管理员同意,xamarin,active-directory,multi-tenant,adal,Xamarin,Active Directory,Multi Tenant,Adal,ADAL:无法在Xamarin.PCL中将“prompt=admin_approve”用作额外的查询参数 当我试图在Xamarin PCL中使用以下代码时 result = await authContext.AcquireTokenAsync(AppIdURI, ClientId, RedirectUri, PlatformParameter, UserIdentifier.AnyUser, "prompt=admin_consent"); 我收到一个例外: extraqueryparame
result = await authContext.AcquireTokenAsync(AppIdURI, ClientId, RedirectUri, PlatformParameter, UserIdentifier.AnyUser, "prompt=admin_consent");
我收到一个例外:
extraqueryparameters中存在重复的查询参数“prompt”
我正在使用此调用为多租户场景中的管理级别的应用程序添加权限。如果没有“prompt=admin_approve”,我无法同意所有用户的申请。当我使用默认行为时,ADAL在第一次登录时显示管理员同意,但不在Azure AD中保存更改
也许有人知道如何处理这个问题
谢谢
2017年2月15日更新
我正在Xamarin Android项目中创建PlatformParameter:
var PlatformParameter =new PlatformParameters(this);
其中“this”是“Activity”。看起来它生成了一些默认的“prompt”参数
此问题仅适用于Xamarin,UWP和WPF或ASP.NET中没有问题,仅适用于多租户场景。这里的问题是,您传递的
平台参数
重载已在登录URL中设置了“提示”查询字符串。因此,当您手动添加另一个带有“prompt”的查询字符串时,它会看到重复的参数
您需要确保PlatformParameter
设置为“PromptBehavior.Auto”,否则额外的查询字符串参数将不起作用
让我知道这是否有帮助 您是否可以共享由代码生成的完整登录url?我的假设是,您的另一个参数也在设置提示值。不过,它不是重复的,您所指的主题是关于另一个问题。我的问题仅适用于Xamarin版本的ADAL。当我在UWP、WPF、控制台应用程序、ASP.NET中强制使用“prompt=admin_approve”时,我对应用程序的同意没有任何问题。谢谢您的建议。但“PromptBehavior.Auto”在Xamarin(PCL)版本的ADAL中不可用。PlatformParameter是PlatformParameters(this),其中this是活动。看起来它生成了一些默认的“prompt”参数。