Я пытаюсь прочитать параметр запроса (имя приложения) из 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
Как прочитать параметр запроса в URL-адресе входа в Azure B2C перед аутентификацией? ⇐ C#
Место общения программистов C#
1729526067
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;
}
};
Подробнее здесь: [url]https://stackoverflow.com/questions/79110808/how-to-read-query-parameter-in-azure-b2c-login-url-before-authentication[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия