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

OpenIddict是否支持类似IdentityServer4的授权请求上下文?

OpenIddict中替代IdentityServer4 GetAuthorizationContextAsync的方案

OpenIddict没有直接和IdentityServer4的GetAuthorizationContextAsync同名的API,但提供了等效方式解析returnUrl中的原始授权请求信息:

  • 使用IOpenIddictAuthorizationService的ExtractAuthorizationRequestAsync方法,传入returnUrl就能提取出包含所有授权请求参数的OpenIddictRequest对象,功能和IdentityServer4返回的AuthorizationRequest完全一致。

示例代码(控制器中使用):

private readonly IOpenIddictAuthorizationService _authorizationService;

public AuthorizationController(IOpenIddictAuthorizationService authorizationService)
{
    _authorizationService = authorizationService;
}

public async Task<IActionResult> Login(string returnUrl)
{
    // 从returnUrl解析授权请求
    var request = await _authorizationService.ExtractAuthorizationRequestAsync(returnUrl);
    
    // 读取原始请求参数
    string clientId = request.ClientId;
    IEnumerable<string> scopes = request.GetScopes();
    string redirectUri = request.RedirectUri;
    // ResponseType、State等其他参数也可直接从request获取
    
    // 后续业务逻辑
    return View();
}
  • 若在OpenIddict授权端点直接处理请求,还能将OpenIddictRequest作为动作方法参数,框架会自动绑定所有请求参数,无需手动解析returnUrl。

OpenIddictRequest包含OAuth2/OpenID Connect授权请求的所有标准参数,完全覆盖IdentityServer4中AuthorizationRequest的信息获取需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 01:39:55