我们在 Xamarin Forms 应用程序中使用了 Azure AD B2C 。我已经在 Android 上运行了该程序,并在 iOS 上运行了该程序。出于某些奇怪的原因,虽然我现在尝试在 iOS 上登录时遇到此错误。
出现登录屏幕,用户输入其用户名和密码,但随后出现错误。查看AD的 Azure 登录,我可以看到 Azure 已成功登录用户。这表明错误是与 Azure 重定向回应用程序有关。
我已经根据此example(尤其是第6步)配置了应用。自从可以使用以来,我没有更改任何登录代码,那么还有什么可能导致它损坏?
答案 0 :(得分:1)
您可以尝试将此方法添加到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;
}
答案 1 :(得分:1)
我最终通过参考此article找到了答案。相关部分是iOS部分,描述了更新 info.plist 文件的过程。我以前与 Azure AD B2C 集成的示例文章指出,我应该使用文本编辑器(例如VS Code)来更新此文件。但是,这里的文章指出我应该使用 Visual Studio 更新文件。对这两个文件的比较显示了在 info.plist 中输入的值之间的差异。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Images</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" type="text/css" media="screen" href="/css/style.css" />
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
</head>
<body>
<link href="https://use.fontawesome.com/releases/v5.4.1/css/all.css" rel="stylesheet" />
<link href="https://fonts.googleapis.com/css?family=Oswald" rel="stylesheet">
<div id="search-div">
<input type="text" class="search-bar" id="searchBar">
</div>
<div class="container">
<div class="flex-container" id="image-container">
</div>
</div>
<div class="control-bar" id="mediaControlBar">
<div class="media-controls">
<div class="prev-btn">
<i class="fas fa-angle-double-left"></i>
</div>
<div class="play-btn">
<i class="fas fa-play"></i>
</div>
<div class="next-btn">
<i class="fas fa-angle-double-right"></i>
</div>
</div>
<div id="seek-bar">
<div id="fill"></div>
<div id="handle"></div>
</div>
</div>
<script src="/js/data.js"></script>
</body>
</html>
这使我登录,但是随后我立即收到以下错误,将我赶出了应用程序。
由于“应用程序传输安全性”策略要求使用安全连接,因此无法加载资源
我已将以下内容添加到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>
所有功能现在都可以使用,用户可以使用iOS登录该应用。