我创建了一个单独的xamarin应用,并尝试在登录后获取令牌。我正在遵循类似于此处
的代码段https://azure.microsoft.com/en-us/resources/samples/active-directory-b2c-xamarin-native/
在我的“租户”设置中是这样
我的重定向URL的格式也正确
PCA.RedirectUri = $"msal{GlobalSetting.Instance.ClientID}://auth";
但是
IEnumerable<IAccount> accounts = await App.PCA.GetAccountsAsync();
AuthenticationResult ar = await App.PCA.AcquireTokenAsync(GlobalSetting.Instance.Scopes, GetAccountByPolicy(accounts, GlobalSetting.Instance.PolicySignUpSignIn), App.UiParent);
此呼叫将我带到Azure AD b2c页面,并且在那里配置了facebook。通过facebook登录后,它向我显示错误
这个大网址,然后 ”无法加载,因为 净:ERR_UNKNOWN_URL_SCHEME“
我的android清单文件看起来像这样
<application android:label="HaveThat" android:roundIcon="@mipmap/icon">
<application>
<activity android:name="microsoft.identity.client.BrowserTabActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="msald6b07784-0e3a-483a-9exxxxxxc524ed1d" android:host="auth" />
</intent-filter>
</activity>
</application>
<provider android:name="android.support.v4.content.FileProvider" android:authorities="${applicationId}.fileprovider" android:exported="false" android:grantUriPermissions="true">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths"></meta-data>
</provider>
</application>
更新
在删除内部应用程序块后,它没有显示错误的网页。相反,它在我的应用程序中显示了一个空白屏幕,代码中的下一行也没有命中。
答案 0 :(得分:0)
修复程序将true用作UIParent中的第二个参数
App.UiParent = new UIParent(this, true);
这告诉系统使用嵌入式浏览器。
答案 1 :(得分:0)
聚会晚了一点,但我遇到了同样的问题。原来,在Azure门户的AD应用程序注册中,我没有选中MSAL重定向URI的复选框。
可通过在应用程序注册中单击应用程序的重定向URI来访问。这将带您进入列出了重定向URI的页面。选中要访问的重定向URI的复选框,您应该会很方便。