簡體   English   中英

使用Azure AD B2C時出現錯誤“Safari無法打開頁面,因為地址無效”

[英]Error “Safari cannot open the page because the address is invalid” with Azure AD B2C

我們將Azure AD B2C與我們的Xamarin Forms應用程序一起使用。 我已經在Android上使用它,並讓它在iOS上工作。 出於一些奇怪的原因,雖然我在嘗試登錄iOS時遇到此錯誤。

在此輸入圖像描述

登錄屏幕出現,用戶輸入他們的用戶名和密碼,但隨后他們收到錯誤。 查看AD的Azure登錄,我可以看到Azure已成功登錄用戶。 這表明錯誤是從Azure重定向回應用程序。

我根據這個例子配置了應用程序,尤其是第6步。就像我說的那樣,我之前有過這個工作。 我沒有更改任何登錄代碼,因為它讓它工作,所以還有什么可能導致它破壞?

您可以嘗試將此方法添加到AppDelegate.cs

public override bool OpenUrl(UIApplication application, NSUrl url, string sourceApplication, NSObject annotation)
    {
        if (HandleOpenURL(application, url)){
            return true;
        }

        //return base.OpenUrl(application, url, sourceApplication, annotation);
        return false;
    }

我最終通過參考這篇文章找到了答案。 相關部分是描述更新info.plist文件的iOS部分。 我以前與Azure AD B2C集成的示例文章(參見上面的OP)聲明我應該使用文本編輯器(如VS Code)來更新此文件。 但是,這篇文章指出我應該使用Visual Studio更新文件。 兩個文件的比較顯示輸入info.plist的值之間的差異。

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>My URL scheme</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>msalmyapplicationid-goes-here</string>
        </array>
        <key>CFBundleTypeRole</key>
        <string>None</string>
    </dict>
</array>

這讓我進入了,但后來我立即得到了以下錯誤,這個錯誤讓我退出了應用程序。

無法加載資源,因為App Transport Security策略要求使用安全連接

我將以下內容添加到info.plist whihc已解決錯誤。

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

現在一切正常,用戶可以使用iOS登錄應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM