Как внедрить IOptionsMonitor в службу в ASP.NET Core 7?C#

Место общения программистов C#
Ответить
Anonymous
 Как внедрить IOptionsMonitor в службу в ASP.NET Core 7?

Сообщение Anonymous »

Я создал класс параметров:

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

public class OktaOptions
{
public const string Okta = "Okta";

public string OktaDomain = string.Empty;
public string AuthorizationServerId = string.Empty;
public string Audience = string.Empty;
public string ClientId = string.Empty;
public string ClientSecret = string.Empty;
public string Scopes = string.Empty;
}
Затем я зарегистрировал его в отдельном классе расширений

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

public static IServiceCollection AddConfigurationOptions(this IServiceCollection services, IConfiguration configuration)
{
services.Configure(
configuration.GetSection("Okta"));

return services;
}
Затем я зарегистрировал этот метод класса в файле program.cs вот так

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

builder.Services.AddConfigurationOptions(builder.Configuration);
Я хочу использовать этот IOptionMonitor в другом методе расширения службы (в расширении службы авторизации), я пытаюсь внедрить свой IOptionMonitor в качестве параметра

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

public static IServiceCollection AddAuthenticationService(this IServiceCollection services, IOptionsMonitor oktaOptions)
{
services.AddAuthentication(options =>
{
//logic here
})
.AddOktaWebApi(new OktaWebApiOptions()
{
OktaDomain = oktaOptions.CurrentValue.OktaDomain,
AuthorizationServerId = oktaOptions.CurrentValue.AuthorizationServerId,
Audience = oktaOptions.CurrentValue.Audience
});

return services;
}
Класс Program.cs

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

builder.Services.AddAuthenticationService(IOptionsMonitor oktaOptions);
Но это не работает, и IntelliSense сообщает мне, что «IOptionsMonitor — это тип, который недопустим в данном контексте, имя интерфейса недействительно на данный момент»
Что можно Что мне нужно сделать, чтобы решить эту проблему?

Подробнее здесь: https://stackoverflow.com/questions/765 ... net-core-7
Ответить

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

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

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

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

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