使用Xamarin.Forms for Android在Android模拟器中显示MSAL登录页面的问题

问题描述 投票:2回答:1

我正在尝试构建和运行Microsoft here在VS2019中提供的Android MSAL示例。它会成功构建并启动,但是在单击登录按钮后,它会打开浏览器并导航登录页面,但无法正确显示。 VS调试输出显示:

W/UserDetailsClient.Droid(12360): type=1400 audit(0.0:224): avc: denied { link } for comm=54687265616420506F6F6C20576F72 name="PropertyStore.forms.tmp" dev="dm-1" ino=124432 scontext=u:r:untrusted_app_27:s0:c512,c768 tcontext=u:object_r:app_data_file:s0:c512,c768 tclass=file permissive=0

[我也看到了一个类似的问题,here。将所有软件包更新到最新版本仍无法解决问题。

我也按照here步骤进行操作,以确保为Android模拟器设置了Chrome。

Android清单看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto">
    <uses-sdk android:minSdkVersion="27" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS" />
    <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="msala7d8cef0-4145-49b2-a91d-95c54051fa3f" android:host="auth" />
            </intent-filter>
        </activity>
    </application>
</manifest>

任何帮助将不胜感激!

android .net xamarin.forms msal
1个回答
1
投票

我已经找到解决问题的方法。使用样本的最新版本解决了无法进入登录屏幕的问题。

关于确认登录并继续返回应用程序,sample中的可选步骤3b是Android演示正常运行所必需的。如果没有正确的客户端ID,则控制权不会传递回应用程序。使用UserDetailsClient项目中App.cs中包含的ClientID更新UserDetailsClient.Droid项目中的示例文件MsalActivity.cs后,它开始工作。

我最初将此步骤视为可选步骤,并且仅当您按照可选step 2中所述将示例注册为新应用程序时才需要进行更新。

[link还更详细地说明了更新android清单或在代码中创建活动的选项。

© www.soinside.com 2019 - 2024. All rights reserved.