You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UWP B2C C#.NET应用querystring过长错误,咨询MSAL是否支持POST请求

问题解答

4.x版本的Microsoft.Identity.Client(MSAL.NET)原生支持将交互式身份认证请求从默认的GET改为POST提交,可直接解决SAML请求过长导致的Requested query string too long报错。

你只需要在原有AcquireTokenInteractive的链式调用中添加对应的配置项即可,不需要重构核心逻辑,修改后的代码如下:

PublicClientApp = PublicClientApplicationBuilder.Create(AuthServiceConfiguration.ClientId)
            .WithB2CAuthority(AuthServiceConfiguration.Authority)
            .Build();

AuthenticationResult authResult = await PublicClientApp.AcquireTokenInteractive(AuthServiceConfiguration.ApiScopes)
                .WithAccount(GetAccountByPolicy(accounts, AuthServiceConfiguration.PolicySignUpSignIn))
                .WithPrompt(Prompt.SelectAccount)
                // 新增这一行配置,指定用POST方式提交授权请求
                .WithOptions(new InteractiveRequestOptions { UseFormPost = true })
                .ExecuteAsync();

如果你的MSAL版本低于4.37.0,建议先升级到最新的4.x稳定版,该配置项从4.37.0版本开始正式加入,无需修改其他依赖逻辑。配置生效后,所有授权请求参数会放在HTTP请求体中传输,不会再拼接在URL查询字符串中,完全适配Azure AD B2C对接SAML类身份提供商的场景。

内容的提问来源于stack exchange,提问作者Full Stack Brain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 06:45:07