Как мне получить HttpContext для аутентификации пользователя с помощью OpenIDConnect?C#

Место общения программистов C#
Ответить
Anonymous
 Как мне получить HttpContext для аутентификации пользователя с помощью OpenIDConnect?

Сообщение Anonymous »

Ранее было разработано приложение с аутентификацией у поставщиков удостоверений Microsoft через OpenIdConnect:

Код: Выделить всё

builder.Services.AddAuthentication(OpenIdConnectDefaults.AuthenticationScheme)
.AddMicrosoftIdentityWebApp(options =>
{
options.Instance = "https://login.microsoftonline.com/";
options.TenantId = TenantId;
options.ClientId = builder.Configuration.GetValue("AzureADClientID");
options.ClientSecret = builder.Configuration.GetValue("AzureADSecret");
options.CallbackPath = "/signin-oidc";
options.SaveTokens = true; // Ensure tokens are saved

});

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseMiddleware();
Теперь я хочу добавить в этот проект собственный уровень промежуточного программного обеспечения. Он должен использовать HttPContext, извлекая из него информацию для выполнения пользовательской логики MiddleWare. Я добавил это специальное промежуточное ПО для включения в мой файл Program.cs. Вот где начинается выполнение пользовательского промежуточного программного обеспечения:

Код: Выделить всё

        [Authorize]
public async Task Invoke(HttpContext context)
{

bool authValid = false;
authValid = await CheckIfUserAPIAuth(context);
// bool authValid = true;
if (authValid)
{
await _next.Invoke(context);
}
else
{
context.Response.StatusCode = 401; //Unauthorized
return;
}
}
Однако при вызове поля context.User устанавливается значение IsAuthenticated = false. В идеале я бы хотел, чтобы информация о пользователе была его системной информацией, но в конечном итоге я также могу использовать информацию AzureAD, например AD-GUID, для продолжения работы с моей собственной логикой. Однако текущий контекст выглядит следующим образом:
Изображение
< /п>

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

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

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

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

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

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