将PowerShell的Get-MsalToken转换为C#时遇重定向URI匹配错误
解决MSAL C#获取令牌时重定向URI不匹配的错误
你原本通过PowerShell命令 Get-MsalToken -ClientId '' -TenantId '' -Scopes '' 可正常获取Bearer令牌,转成C#实现后运行报错:
请求中指定的重定向URI 'http://localhost' 与为应用程序配置的重定向URI不匹配
解决步骤:
- 登录Azure门户,找到对应
ClientId的应用注册 - 进入应用注册的「认证」页面
- 在「移动和桌面应用」区域,添加
http://localhost作为重定向URI;或者不想手动指定的话,可直接使用MSAL的默认重定向URI配置
修正后的C#代码示例:
var clientId = "xyz"; var tenantId = "xyz"; // 目标权限范围 string[] scopes = { $"{clientId}/.default" }; string authority = $"https://login.microsoftonline.com/{tenantId}"; IPublicClientApplication app = PublicClientApplicationBuilder.Create(clientId) .WithAuthority(new Uri(authority)) .WithDefaultRedirectUri() // 自动匹配应用配置的默认重定向URI .Build(); AuthenticationResult result = await app.AcquireTokenInteractive(scopes).ExecuteAsync(); var token = result.AccessToken;
内容的提问来源于stack exchange,提问作者Node.JS
相关产品推荐
相关产品推荐

