如何使用配置管理器? (Microsoft.IdentityModel.Protocols)
How to use ConfigurationManager? (Microsoft.IdentityModel.Protocols)
我最近被迫将我的 System.IdentityModel.Tokens.Jwt NuGet 包更新到 5.1.4,因为另一个 NuGet 包。
更改后的大部分代码看起来很容易解决,但现在 ConfigurationManager<OpenIdConnectConfiguration>()
接受两个参数而不是一个!
我找不到任何关于如何使用这个新版本的配置管理器的例子!
我将其用作此代码的一部分:
string stsDiscoveryEndpoint = string.Format("{0}/.well-known/openid-configuration", authority);
ConfigurationManager<OpenIdConnectConfiguration> configManager = new ConfigurationManager<OpenIdConnectConfiguration>(stsDiscoveryEndpoint, IConfigurationRetriever<>);
OpenIdConnectConfiguration config = await configManager.GetConfigurationAsync();
_issuer = config.Issuer;
_signingTokens = config.SigningTokens.ToList();
_stsMetadataRetrievalTime = DateTime.UtcNow;
谁能告诉我 ConfigurationManager
期望的参数是什么
我发现为了让 ConfigurationManager
与版本 >=5.1.4 的 System.IdentityModel.Tokens.Jwt
NuGet 包一起工作,你必须添加 OpenIdConnectConfigurationRetriever()
作为第二个参数。
ConfigurationManager
的正确调用是:
ConfigurationManager<OpenIdConnectConfiguration> configManager = new ConfigurationManager<OpenIdConnectConfiguration>(stsDiscoveryEndpoint, new OpenIdConnectConfigurationRetriever());
根据您想要执行的操作,您可以更改代码以调用配置检索器,如下所示:
string issuerEndpoint = "https://my.auth.server";
var openidConfiguration = await OpenIdConnectConfigurationRetriever.GetAsync(
$"{issuerEndpoint}/.well-known/openid-configuration", CancellationToken.None);
app.UseJwtBearerAuthentication(
new Microsoft.Owin.Security.Jwt.JwtBearerAuthenticationOptions()
{
TokenValidationParameters =
new TokenValidationParameters
{
ValidIssuer = openidConfiguration.Issuer,
ValidateAudience = false,
IssuerSigningKeys = openidConfiguration.SigningKeys,
IssuerSigningTokens = openidConfiguration.SigningTokens
}
});
我最近被迫将我的 System.IdentityModel.Tokens.Jwt NuGet 包更新到 5.1.4,因为另一个 NuGet 包。
更改后的大部分代码看起来很容易解决,但现在 ConfigurationManager<OpenIdConnectConfiguration>()
接受两个参数而不是一个!
我找不到任何关于如何使用这个新版本的配置管理器的例子!
我将其用作此代码的一部分:
string stsDiscoveryEndpoint = string.Format("{0}/.well-known/openid-configuration", authority);
ConfigurationManager<OpenIdConnectConfiguration> configManager = new ConfigurationManager<OpenIdConnectConfiguration>(stsDiscoveryEndpoint, IConfigurationRetriever<>);
OpenIdConnectConfiguration config = await configManager.GetConfigurationAsync();
_issuer = config.Issuer;
_signingTokens = config.SigningTokens.ToList();
_stsMetadataRetrievalTime = DateTime.UtcNow;
谁能告诉我 ConfigurationManager
期望的参数是什么
我发现为了让 ConfigurationManager
与版本 >=5.1.4 的 System.IdentityModel.Tokens.Jwt
NuGet 包一起工作,你必须添加 OpenIdConnectConfigurationRetriever()
作为第二个参数。
ConfigurationManager
的正确调用是:
ConfigurationManager<OpenIdConnectConfiguration> configManager = new ConfigurationManager<OpenIdConnectConfiguration>(stsDiscoveryEndpoint, new OpenIdConnectConfigurationRetriever());
根据您想要执行的操作,您可以更改代码以调用配置检索器,如下所示:
string issuerEndpoint = "https://my.auth.server";
var openidConfiguration = await OpenIdConnectConfigurationRetriever.GetAsync(
$"{issuerEndpoint}/.well-known/openid-configuration", CancellationToken.None);
app.UseJwtBearerAuthentication(
new Microsoft.Owin.Security.Jwt.JwtBearerAuthenticationOptions()
{
TokenValidationParameters =
new TokenValidationParameters
{
ValidIssuer = openidConfiguration.Issuer,
ValidateAudience = false,
IssuerSigningKeys = openidConfiguration.SigningKeys,
IssuerSigningTokens = openidConfiguration.SigningTokens
}
});