MAUI 集成认证服务基于 MSAL.NET 实现,利用平台原生能力(如 WebAuthenticator、ASWebAuthenticationSession、Chrome Custom Tabs)安全唤起登录页,自动处理重定向、令牌缓存与刷新;需在 Entra 管理中心注册应用并配置客户端 ID、租户 ID 及各平台重定向 URI;通过 NuGet 引入 Microsoft.Identity.Client,在 MauiProgram.cs 中注册 IPublicClientApplication;封装 AuthService 调用 AcquireTokenInteractive 登录、RemoveAsync 登出;iOS/Android 需重写 OpenUrl/OnNewIntent 传递回调;登录后可获取用户信息及令牌,推荐结合 AuthenticationStateProvider 与 AuthorizeView 实现权限控制。
MAUI 集成认证服务,核心是用 MSAL.NET(Microsoft Authentication Library)实现基于 Microsoft 标识平台(如 Azure AD、Entra ID 或 Azure AD B2C)的登录。它不依赖 WebView 手动拼接 URL,而是通过平台原生能力(如 Windows 的 WebAuthenticator、iOS/macOS 的 ASWebAuthenticationSession、Android 的 Chrome Custom Tabs)安全唤起登录页,并自动处理重定向、令牌缓存与刷新。
在 Microsoft Entra 管理中心完成以下操作:
msal://auth
msauth.://auth (需在 Xcode 中配好 Bundle ID)msal://auth (并在 AndroidManifest.xml 声明 intent-filter)在 MAUI 主项目(.csproj)中添加 NuGet 包:
在 MauiProgram.cs 中注册 MSAL 公共客户端:
var clientId = "your-client-id";
var tenantId = "your-tenant-id";
var redirectUri = DeviceInfo.Platform switch
{
DevicePlatform.Windows => "msal" + clientId + "://auth",
DevicePlatform.iOS => "msauth.your.bundle.id://auth",
DevicePlatform.Android => "msal" + clientId + "://auth",
_ => throw new PlatformNotSupportedException()
};
var pca = PublicClientApplicationBuilder.Create(clientId)
.WithTenantId(tenantId)
.WithRedirectUri(redirectUri)
.WithLogging((level, message, containsPii) =>
Debug.WriteLine($"MSAL: {level} - {message}"))
.Build();
builder.Services.AddSingleton(pca);
MAUI 使用 WebAuthenticator.Default.AuthenticateAsync() 启动系统浏览器流程,MSAL 会自动构造授权 URL 并监听回调:
AuthService),注入 IPublicClientApplication
AcquireTokenInteractive(),它内部会触发 WebAuthenticator
RemoveAsync(account) 清除本地缓存账号AppDelegate.cs 中重写 OpenUrl;Android 需在 MainActivity.cs 中重写 OnNewIntent,把回调传给 MSAL 处理登录成功后,MSAL 返回 AuthenticationResult,包含 ID Token 和访问令牌。你可以提取用户基本信息:
result.Account.Username(通常为邮箱)result.Account.Name(显示名)result.IdToken 可用于调用受保护 API(如 Microsoft Graph)AuthenticationStateProvider,配合 AuthorizeView 组件做 UI 权限控制基本上就这些。不需要手写 OAuth 流程,也不用管理 token 过期——MSAL 自动刷新。关键点在于注册正确、重定向 URI 匹配、平台回调桥接到位。
# android
# windows
# 浏览器
# app
# session
# 后端
# mac
# ai
# ios
# switch
# macos
# chrome
# 封装
# xml
# Filter
# Token
# default
# webview
# xcode
# microsoft
# azure
# ui
# 令牌
# 客户端
# 重定向
# 回调
# 重写
# 管理中心
# 你可以
# 不需要
# 并在
# 它不
相关文章:
视频网站制作教程,怎么样制作优酷网的小视频?
如何使用Golang安装API文档生成工具_快速生成接口文档
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
电视网站制作tvbox接口,云海电视怎样自定义添加电视源?
如何在阿里云虚拟服务器快速搭建网站?
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
如何用VPS主机快速搭建个人网站?
广州网站制作的公司,现在专门做网站的公司有没有哪几家是比较好的,性价比高,模板也多的?
南京网站制作费用,南京远驱官方网站?
php能控制zigbee模块吗_php通过串口与cc2530 zigbee通信【介绍】
如何撰写建站申请书?关键要点有哪些?
建站主机服务器选购指南:轻量应用与VPS配置解析
制作企业网站建设方案,怎样建设一个公司网站?
枣阳网站制作,阳新火车站打的到仙岛湖多少钱?
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
如何注册花生壳免费域名并搭建个人网站?
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
网站插件制作软件免费下载,网页视频怎么下到本地插件?
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
网站制作企业,网站的banner和导航栏是指什么?
如何确保西部建站助手FTP传输的安全性?
建站之星后台管理如何实现高效配置?
想学网站制作怎么学,建立一个网站要花费多少?
广州商城建站系统开发成本与周期如何控制?
如何用狗爹虚拟主机快速搭建网站?
实例解析angularjs的filter过滤器
建站之星图片链接生成指南:自助建站与智能设计教程
沈阳制作网站公司排名,沈阳装饰协会官方网站?
北京制作网站的公司,北京铁路集团官方网站?
一键网站制作软件,义乌购一件代发流程?
网站制作壁纸教程视频,电脑壁纸网站?
建站之星展会模版如何一键下载生成?
定制建站方案优化指南:企业官网开发与建站费用解析
如何在IIS管理器中快速创建并配置网站?
建站之星代理平台如何选择最佳方案?
建站主机默认首页配置指南:核心功能与访问路径优化
如何在阿里云通过域名搭建网站?
代刷网站制作软件,别人代刷火车票靠谱吗?
如何正确选择百度移动适配建站域名?
专业网站制作服务公司,有哪些网站可以免费发布招聘信息?
,购物网站怎么盈利呢?
*服务器网站为何频现安全漏洞?
电商平台网站制作流程,电商网站如何制作?
如何设置并定期更换建站之星安全管理员密码?
c# 在高并发场景下,委托和接口调用的性能对比
红河网站制作公司,红河事业单位身份证如何上传?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
黑客入侵网站服务器的常见手法有哪些?
如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法
建站之星安装后如何自定义网站颜色与字体?
*请认真填写需求信息,我们会在24小时内与您取得联系。