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

WebForm应用SSO集成报错:找不到GetUserInfoAsync方法

解决WebForm SSO中调用GetUserInfoAsync的方法未找到异常

这个错误本质是NuGet包版本不兼容导致的方法签名不匹配,IdentityModel的版本和你使用的Owin身份验证包版本对不上,使得运行时找不到对应的GetUserInfoAsync重载方法。下面是具体的解决步骤:

1. 检查并对齐NuGet包版本

首先查看你项目中以下几个关键包的版本:

  • IdentityModel
  • Microsoft.Owin.Security.OpenIdConnect
  • Microsoft.Owin.Security.Cookies

Owin 4.x系列的包通常和IdentityModel 4.x版本兼容,如果你用了太新的IdentityModel(比如6.x+),它的API已经发生了大幅变化,和旧版Owin中间件不兼容。建议你统一到兼容的版本组合,比如:

  • 安装IdentityModel 4.1.1
  • 安装Microsoft.Owin.Security.OpenIdConnect 4.2.2

你可以通过NuGet包管理器卸载现有版本后重新安装,或者用Package Manager Console执行:

Uninstall-Package IdentityModel -Force
Uninstall-Package Microsoft.Owin.Security.OpenIdConnect -Force
Install-Package IdentityModel -Version 4.1.1
Install-Package Microsoft.Owin.Security.OpenIdConnect -Version 4.2.2

2. 调整GetUserInfoAsync的调用代码

根据你安装的IdentityModel版本,调整方法调用的签名:

如果你用的是IdentityModel 4.x版本

可以显式传递取消令牌,或者使用简化的重载:

var userInfoResponse = await client.GetUserInfoAsync(
    new UserInfoRequest 
    { 
        Address = disco.UserInfoEndpoint, 
        Token = n.ProtocolMessage.AccessToken 
    }, 
    CancellationToken.None);

或者更简洁的版本:

var userInfoResponse = await client.GetUserInfoAsync(disco.UserInfoEndpoint, n.ProtocolMessage.AccessToken);

如果你升级到了较新的IdentityModel版本(比如5.x+)

需要调整为新的API写法,比如使用UserInfoClient:

var userInfoClient = new UserInfoClient(disco.UserInfoEndpoint);
var userInfoResponse = await userInfoClient.GetAsync(n.ProtocolMessage.AccessToken);

3. 调试中间件的小技巧

因为中间件里调试不方便,你可以添加日志输出定位问题:

// 在获取disco之后添加日志
Trace.WriteLine($"UserInfoEndpoint: {disco.UserInfoEndpoint}");
Trace.WriteLine($"Access Token: {n.ProtocolMessage.AccessToken}");

// 调用GetUserInfoAsync之前加try-catch捕获详细异常
try
{
    var userInfoResponse = await client.GetUserInfoAsync(...);
}
catch(Exception ex)
{
    Trace.WriteLine($"GetUserInfo Error: {ex.ToString()}");
    throw;
}

这样你可以在输出窗口看到详细的错误信息,帮助定位问题。

内容的提问来源于stack exchange,提问作者Tarta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 03:52:01