Beide sind Blazor Server -Projekte. Aus App1 übergeben wir Benutzeridentitätsdaten, um sich in App2 zu authentifizieren.
Der Endpunkt in App2 ist eine Komponente mit dem Namen externalAuth Akzeptieren von 2 Parametern:
Code: Select all
@page "/externalauth/{EncryptedData}/{EncryptApiKey}"
@using FinnivoClients_BlazorServer.Services
@inject NavigationManager NavigationManager
@inject ExternalAuthService ExternalAuthService
@code {
[Parameter] public string EncryptedData { get; set; }
[Parameter] public string EncryptApiKey { get; set; }
protected override async Task OnInitializedAsync()
{
if (string.IsNullOrEmpty(EncryptedData) || string.IsNullOrEmpty(EncryptApiKey))
{
NavigationManager.NavigateTo("/");
return;
}
bool isAuthenticated = await ExternalAuthService.AuthenticateExternalUser(EncryptedData, EncryptApiKey);
if (isAuthenticated)
NavigationManager.NavigateTo("/", forceLoad: true);
else
NavigationManager.NavigateTo("/error");
}
}
private async Task RedirectToClientApp()
{
// Only encode the values once
string targetUrl = $"https://xxx.azurewebsites.net/externala ... encodedKey}";
// Open the URL in a new tab
NavigationManager.NavigateTo(targetUrl);
}
< /code>
Das Problem ist, wenn wir den Live -Azure -Link verwenden. Ich erhalte den folgenden Fehler -> Die von Ihnen gesuchte Ressource wurde entfernt, seinen Namen geändert oder ist vorübergehend nicht verfügbar.private async Task RedirectToClientApp()
{
// Only encode the values once
string targetUrl = $"https://localhost:8080/externalauth/{en ... encodedKey}";
// Open the URL in a new tab
NavigationManager.NavigateTo(targetUrl);
}
< /code>
Es funktioniert sogar, wenn ich die codierten Werte bearbeite und an den Lokalhost -Link weitergibt. URL - https://xxx.azurewebsites.net/externala ... BOB1YYWBOB 6DE5KOJS7MSLD0LNWORHACLCNEENTFL5EIWENIASI4HKIA%252BOP20/N3P8LR1PQPKROLIH5O1UVRMWAON4XQO%252BFW41MUUPAGS73WEXCOHHKGV5UH0FLA9EC0FLA9EC0FLA9EFLA9EC>