Вы можете использовать OpenIdConnectOptions
, поскольку AzureADOptions
также будет отображаться в OpenIdConnectOptions
в библиотеке. И вам нужно ввести OpenIdConnectPostConfigureOptions
в систему DI и вызвать _postConfigureOptions.PostConfigure
до _optionsCache.TryAdd
:
ConfigureServices.cs
:
services.AddSingleton<OpenIdConnectPostConfigureOptions>();
В вашем контроллере:
private readonly IAuthenticationSchemeProvider _schemeProvider;
private readonly IOptionsMonitorCache<OpenIdConnectOptions> _optionsCache;
private readonly OpenIdConnectPostConfigureOptions _postConfigureOptions;
public HomeController(IAuthenticationSchemeProvider schemeProvider, IOptionsMonitorCache<OpenIdConnectOptions> optionsCache, OpenIdConnectPostConfigureOptions postConfigureOptions)
{
_schemeProvider = schemeProvider;
_optionsCache = optionsCache;
_postConfigureOptions = postConfigureOptions;
}
В вашем действии:
var OIDCoptions = new OpenIdConnectOptions
{
Authority = "https://login.microsoftonline.com/YourTenantID/",
ClientId = "YourClientID",
CallbackPath = "/signin-oidc"
};
_postConfigureOptions.PostConfigure(AzureADDefaults.OpenIdScheme, OIDCoptions);
_optionsCache.TryRemove(AzureADDefaults.OpenIdScheme);
_optionsCache.TryAdd(AzureADDefaults.OpenIdScheme, OIDCoptions);