Android端Xamarin.Forms中ADAL登录屏旋转丢失邮箱问题求助
Android上Xamarin.Forms+ADAL认证时旋转屏幕丢失输入状态的问题
我之前也碰到过类似的棘手问题,结合你描述的场景和排查过程,整理一下相关信息和结论:
问题复现场景
- 基于Xamarin.Forms开发的应用,使用**ADAL(Microsoft.IdentityModel.Clients.ActiveDirectory)**对接Azure AAD完成用户认证
- Android设备上出现异常:竖屏输入邮箱点击「下一步」进入密码输入页后,旋转屏幕会直接回到空白的邮箱输入页,已输入的邮箱内容完全丢失
- 你已经在
MainActivity中配置了方向相关的ConfigurationChanges属性,代码如下:[Activity(Name = "my.mainactivity" , Label = "MyApp" , Icon = "@drawable/icon" , ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.SmallestScreenSize | ConfigChanges.ScreenLayout | ConfigChanges.Orientation)] public class MainActivity : Xamarin.Forms.Platform.Android.FormsAppCompatActivity { ... }
排查后的核心结论
你尝试的「在调用AcquireTokenAsync前锁定竖屏、获取响应后解锁」方案无效,本质原因是:ADAL内部用于承载认证页面的WebView,并未遵循你通过PlatformParameters传入的Activity的方向设置。目前这个问题已经被官方确认为内部实现缺陷。
临时方案与后续建议
- 优先尝试升级ADAL到最新可用版本,确认是否已有官方修复补丁
- 如果项目架构允许,建议迁移到MSAL(Microsoft Authentication Library)——MSAL是ADAL的官方替代方案,后续的修复和维护优先级更高
- 持续关注官方对该类问题的修复进度,等待正式补丁上线
内容的提问来源于stack exchange,提问作者pixel
相关产品推荐
相关产品推荐

