Xamarin解决方案中Android Manifest的msauth配置如何适配UWP Manifest
UWP端MSAL身份验证协议配置方案
你遇到的报错是正常现象:Android与UWP的应用Manifest是完全独立的两套定义,不存在兼容关系,Android配置的代码不能直接复制到UWP的任何配置文件中。同时你混淆了UWP的配置文件作用:Default.rd.xml是UWP平台的.NET Native运行时裁剪指令文件,和URI协议注册、身份验证重定向配置无关,你当前的Default.rd.xml内容已经满足需求,不需要修改。
具体配置步骤
- 找到UWP项目根目录下的
Package.appxmanifest文件,双击打开进入可视化配置界面 - 配置协议声明:
- 切换到「声明」标签页,在「可用声明」下拉列表选中「协议」,点击右侧「添加」按钮
- 在协议配置栏的「名称」字段填入
msauth(对应Android配置中的scheme值),「显示名称」可自定义填写如MSAL身份验证回调,其余字段保持默认即可
- 配置网络权限:切换到「功能」标签页,勾选「Internet(客户端)」权限,对应Android配置中的网络访问权限
- 配置MSAL重定向规则:
- 在Azure AD应用注册后台的重定向URI允许列表中,添加UWP平台专用的重定向地址,格式为
msal{你的Azure客户端ID}://auth - 修改共享项目中的MSAL初始化代码,为UWP平台单独指定重定向URI:
var publicClientApp = PublicClientApplicationBuilder .Create("替换为你的Azure AD客户端ID") .WithRedirectUri("msal替换为你的Azure AD客户端ID://auth") // 其余原有配置保持不变 .Build(); - 在Azure AD应用注册后台的重定向URI允许列表中,添加UWP平台专用的重定向地址,格式为
- 添加回调处理逻辑:在UWP项目的
App.xaml.cs文件中重写OnActivated方法,将身份验证回调传递给MSAL处理:
protected override void OnActivated(IActivatedEventArgs args) { base.OnActivated(args); if (args is ProtocolActivatedEventArgs protocolActivatedArgs) { AuthenticationContinuationHelper.SetAuthenticationContinuationEventArgs(protocolActivatedArgs); } }
内容的提问来源于stack exchange,提问作者dot
相关产品推荐
相关产品推荐

