gpt4 book ai didi

c# - Blazor 从外部 URL 重定向回本地 URL

转载 作者:行者123 更新时间:2023-12-05 04:58:40 26 4
gpt4 key购买 nike

我有一个 Blazor 应用程序,用户应该在其中登录外部登录页面(在 Intranet 内),登录后我想重定向回应用程序主页(仪表板)。所以我基本上想要的是用户打开应用程序并单击登录按钮,然后应用程序路由到外部登录页面,用户输入他的用户名和密码,用户登录后,我的应用程序的仪表板(主页)被加载并显示。

所以我有一个登录按钮,当用户单击它时,他将被路由到“login.razor”。在“login.razor”中,我有以下代码:

@page "/login"
@inject NavigationManager NavManager

@code {
protected override async Task OnInitializedAsync()
{
string homeUrl = "/";

//First attempt:
// This doesn't work
//NavManager.NavigateTo($"http://external.login.page?redirectUrl={homeUrl}", forceLoad: true);

// Second attempt: (doesn't work either)
// Navigate to external login
NavManager.NavigateTo($"http://external.login.page", forceLoad: true);

// Navigate to Home of blazor app (this is suppose to be executed after the user has submitted the above login form)
NavManager.NavigateTo($"{homeUrl}", forceLoad: true);
}
}

第一次尝试失败,因为服务器响应错误。第二次尝试不起作用,因为应用程序在加载登录页面后几乎立即路由到“主页”。

有人知道如何解决这个问题吗?

最佳答案

我明白你的意思,它类似于 Azure Active Directory 或使用任何外部提供商登录,基本上重定向到仪表板或您想要的页面的过程应该发生在登录页面级别,而不是来自您的应用程序,我的意思是登录另一个应用程序中的页面应该接收一个名为 redirect_uri 的参数,因此代码将如下所示

// Navigate to external login
NavManager.NavigateTo($"http://external.login.page?redirect_url={home_uri}", forceLoad: true);

并且在登录应用程序级别,如果登录尝试顺利,则获取该参数的值并将用户重定向到它。

关于c# - Blazor 从外部 URL 重定向回本地 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63880945/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com