authentication - Xamarin Forms - 登录后重定向问题
问题描述
我有一个使用 shell 的 Xamarin Forms 应用程序,使用 IdentityServer4 后端进行身份验证。
我有一个登录按钮,按下后,用户将按预期登录到我的 IdentityServer。成功登录后,我会通过重定向 url 回到我的应用程序……但我没有回到我所在的页面(使用我的登录按钮),我被带到了我的应用程序的起始页面。
更重要的是,如果此时我按下后退按钮,我将返回我的登录页面......但奇怪的是(对于那些知道发生了什么的人来说可能并不那么奇怪),App.cs 中的 OnResume 事件是当我按下这个后退按钮时点击。
谁能告诉这里发生了什么?我希望我的应用程序返回到同一页面(登录页面)而不是起始页面,这似乎超出了当前的生命周期。
谢谢
ps - 如果它有所不同,我正在使用的重定向 Uri 来自 IdentityServer 文档“io.identitymodel.native://callback”......尽管我打算在它工作时更改它。
解决方案
看来这只是一个Android问题。我通过将主活动上的 LaunchMode 设置为单任务解决了这个问题......例如
LaunchMode = LaunchMode.SingleTask
[Activity(Label = "MyXamarinApp", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, LaunchMode = LaunchMode.SingleTask, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
...
这从我上次离开的地方返回到我的应用程序。
推荐阅读
- android - 更新应用程序后 SQlite“没有这样的表”
- json - Angular 7检查JSON解析是否返回特定对象的正确方法
- php - mysqli_multi_query 是否与多次调用 mysqli_query 相同?
- python - Django Rest Framework 使用子序列化器在父序列化器中创建子对象
- vb.net - 有没有更好的方法在表单中显示 Excel 电子表格?
- javascript - 谷歌只映射一个 infoWindow
- css - 将掩码应用于CSS中的父元素,但没有结果
- flutter - 将数据传递到 Flutter 路由的两种方式之间的区别
- javascript - 我的按钮有效,我相信该功能有效,但等于按钮无效
- javascript - 单击外部 div 和兄弟姐妹时隐藏 div