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

如何在Blazor WASM应用的Syncfusion PDF Viewer ServiceUrl API调用中加入认证

Blazor WASM身份认证环境下Syncfusion PDF Viewer请求附加令牌配置方案

问题根因

Syncfusion PDF Viewer默认不会自动携带Blazor WASM内置的身份认证令牌发送请求,发往ServiceUrl的API请求无有效认证信息,因此触发AccessTokenNotAvailableException异常。

配置步骤

  • 第一步:在使用PDF Viewer的Razor组件中注入依赖服务
@inject IAccessTokenProvider TokenProvider
@inject NavigationManager NavManager
  • 第二步:为PDF Viewer组件绑定BeforeSendHttpRequest事件,该事件会在所有发往ServiceUrl的请求发送前触发
<SfPdfViewer @ref="PdfViewerRef"
             ServiceUrl="/api/pdfviewer"
             BeforeSendHttpRequest="InjectAuthToken">
</SfPdfViewer>
  • 第三步:实现请求拦截方法,注入认证令牌
private SfPdfViewer PdfViewerRef { get; set; }

private async Task InjectAuthToken(BeforeSendHttpRequestEventArgs args)
{
    // 申请API访问令牌,替换为你实际配置的API授权作用域
    var tokenResult = await TokenProvider.RequestAccessToken(new AccessTokenRequestOptions
    {
        Scopes = new[] { "你的API作用域名称" }
    });

    if (tokenResult.TryGetToken(out var accessToken))
    {
        // 向请求头添加Bearer认证信息
        args.RequestHeaders.Add("Authorization", $"Bearer {accessToken.Value}");
    }
    else
    {
        // 令牌获取失败时跳转登录页
        NavManager.NavigateTo("authentication/login");
    }
}

服务端配套配置

你需要确保ServiceUrl对应的后端接口已开启Bearer令牌认证,同时如果是跨域部署场景,CORS配置需要放开Authorization头的访问权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 23:45:01