Jep*_*ppe 6 c# configuration openid-connect
由于另一个NuGet包,我最近被迫将我的System.IdentityModel.Tokens.Jwt NuGet包更新到5.1.4.更改后的大多数代码似乎都很容易解决,但现在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;
Run Code Online (Sandbox Code Playgroud)
任何人都可以让我知道参数的ConfigurationManager预期
Jep*_*ppe 10
我发现为了ConfigurationManager使用System.IdentityModel.Tokens.JwtNuGet包的version> = 5.1.4 进行工作,你必须添加OpenIdConnectConfigurationRetriever()第二个参数.
正确的调用ConfigurationManager是:
ConfigurationManager<OpenIdConnectConfiguration> configManager = new ConfigurationManager<OpenIdConnectConfiguration>(stsDiscoveryEndpoint, new OpenIdConnectConfigurationRetriever());
Run Code Online (Sandbox Code Playgroud)
根据您想要执行的操作,您只需更改代码即可调用配置检索器,如下所示:
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
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5781 次 |
| 最近记录: |