Как прочитать параметр запроса в URL-адресе входа в Azure B2C перед аутентификацией?C#

Место общения программистов C#
Ответить
Anonymous
 Как прочитать параметр запроса в URL-адресе входа в Azure B2C перед аутентификацией?

Сообщение Anonymous »

Я пытаюсь прочитать параметр запроса (имя приложения) из URL-адреса входа в Azure B2C перед аутентификацией. У меня есть два приложения, использующие единый вход (SSO) с общими сеансами, и я хочу, чтобы имя приложения отображалось на странице входа в систему.
Я попробовал добавить параметр с помощью OpenIdConnectEvents.OnRedirectToIdentityProvider, и читает его с помощью JavaScript, но имя приложения не отображается на странице входа.
using Microsoft.AspNetCore.Authentication.OpenIdConnect;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc.Authorization;
using Microsoft.Identity.Web;
using Microsoft.Identity.Web.UI;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme).AddMicrosoftIdentityWebApp(options =>
{
builder.Configuration.GetSection("AzureAdB2C").Bind(options);
options.Events ??= new OpenIdConnectEvents();

options.Events.OnRedirectToIdentityProvider += context =>
{
var appName = "LicensePortal";
context.ProtocolMessage.SetParameter("appName", appName);

return Task.CompletedTask;
};
});

builder.Services.AddControllersWithViews(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
});

builder.Services.AddRazorPages()
.AddMicrosoftIdentityUI();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();

app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");

app.MapRazorPages();

app.Run();

Это мой код Javascript для получения имени приложения
Sign up or sign in

function getQueryParameter(name) {
const urlParams = new
URLSearchParams(window.location.search);
return urlParams.get(name);
}

window.onload = function() {
const appName = getQueryParameter('appName');
if (appName) {
document.getElementById('appNameDisplay').innerText = appName;
}
};



Подробнее здесь: https://stackoverflow.com/questions/791 ... entication
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»