首页 > 解决方案 > 在 ASP.NET Core MVC 中重定向到具有 api 响应的页面

问题描述

我有一个带有 httpGET方法的 api 控制器。此方法是从前端调用的。为此,我想将用户重定向到仪表板页面并提供一些登录响应对象。当请求进入此方法时,它来自不同的页面。

api/accounts/loginobject当第三方身份服务器发送 oauth2 身份验证时,请求通过路径到达此方法。这是一个重定向 url 方法。

    [HttpGet]
    [Route("LoginObject")]
    public async Task<IActionResult> getLoginObject()
    {
        var externalLoginInfo = await this.signInManager.GetExternalLoginInfoAsync().ConfigureAwait(false);

        // parse token here
    }

我尝试了下面的代码,它可以工作。但我不知道我们是否可以在下面的响应中发送响应对象。我想在标题中附加令牌并在响应正文中附加一些信息。

// dashboard is a ui page not another controller action
return Redirect("/dashboard");

前端应用程序是 ASP.NET Core MVC 项目的 Angular 应用程序部分。我有一个第三方身份服务器,它将 oauth2 结果发送回这个控制器。

以下将设置标题,但当重定向到 html 页面 /dashboard 时它将丢失。我仍然无法使用访问令牌响应 ui

this.Response.Headers.Add("Authorization", $"Bearer {accessToken}");

更新:

我通过在查询字符串中传递令牌暂时解决了这个问题。它现在看起来更像是一个黑客。一旦在 ui 中收到它,我会将它设置在 web 应用程序本地存储中以供后续 api 调用。

https://mywebsite/accesstokencallback?access_token=eybcsdfk23klsd-3dsfjs

标签: c#asp.net-core.net-coreasp.net-core-mvc

解决方案


推荐阅读