问题 运行 IdentityServer4
Issue running IdentityServer4
我正在了解 IdentityServer4 https://identityserver4.readthedocs.io/en/release/quickstarts/0_overview.html,但似乎无法正常工作。
创建项目的 API 部分并进行相应配置后:
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions
{
Authority = "http://localhost:5000",
RequireHttpsMetadata = false,
ApiName = "api1"
});
app.UseMvc();
}
我收到以下错误:
'IApplicationBuilder' does not contain a definition for 'UseIdentityServerAuthentication' and no extension method 'UseIdentityServerAuthentication' accepting a first argument of type 'IApplicationBuilder' could be found (are you missing a using directive or an assembly reference?)
有什么我在这里遗漏的建议吗?
编辑 1:
我注意到我无法引用命名空间,即使软件包已安装并存在。
即
using IdentityServer4.AccessTokenValidation;
或
using IdentityServer4;
您需要 this 包。并使用命名空间 IdentityServer4.AccessTokenValidation
好吧,我刚刚关闭并重新打开 Visual Studio 2017,问题就消失了。可能 Visual Studio 第一次拉下 IdentityServer4.AccessTokenValidation 包时卡住了,重新打开项目导致它再次尝试,这次成功了。
只是为了提供update/answer,后续版本的IdentityServer4包工作正常
目前正在使用 ID4 2.0 包。
您可以在 github IdentityServer4:
查看最新文档
它使用 services.AddAuthentication
方法在 ConfigureServices
方法中设置身份验证选项。
这是他们正在使用的 test server 代码
我遇到了同样的问题,我按照 IdentityServer 4 Quickstart Samples, in particular the Javascript Client 示例解决了。
所以,这就是它在这里的作用:
检查依赖版本。报告了 IdentityServer 运行 .NET Core 2.0 的问题。在我的 API 项目中,我使用了 Microsoft.Asp.NetCore.All 2.0.5 版和 IdentityServer4.AccessTokenValidation 2.3.0 版。
在Startup.cs里面,在Configure方法中添加:app.UseAuthentication();因为它在 example.
中使用
最后一步是向 ConfigureServices 方法添加身份验证,因为它在 example:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvcCore()
.AddAuthorization()
.AddJsonFormatters();
services.AddAuthentication("Bearer")
.AddIdentityServerAuthentication(options =>
{
options.Authority = "http://localhost:5000";
options.RequireHttpsMetadata = false;
options.ApiName = "api1";
});
}
这就解决了我的问题。希望它也对你有用,请告诉我进展如何。
编码愉快。
如果您从 net core 1.1 迁移到 2.0,则需要按照 Identity Server: API Migration to ASP.NET Core 2
中所述迁移您的代码
在配置函数中
Before:
app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions
{
Authority = "http://localhost:5000",
RequireHttpsMetadata = false,
ApiName = "apiApp"
});
After:
app.UseAuthentication();
在 ConfigureServices 函数中
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme =
JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme =
JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(o =>
{
o.Authority = "http://localhost:5000";
o.Audience = "apiApp";
o.RequireHttpsMetadata = false;
});
我正在了解 IdentityServer4 https://identityserver4.readthedocs.io/en/release/quickstarts/0_overview.html,但似乎无法正常工作。
创建项目的 API 部分并进行相应配置后:
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions
{
Authority = "http://localhost:5000",
RequireHttpsMetadata = false,
ApiName = "api1"
});
app.UseMvc();
}
我收到以下错误:
'IApplicationBuilder' does not contain a definition for 'UseIdentityServerAuthentication' and no extension method 'UseIdentityServerAuthentication' accepting a first argument of type 'IApplicationBuilder' could be found (are you missing a using directive or an assembly reference?)
有什么我在这里遗漏的建议吗?
编辑 1: 我注意到我无法引用命名空间,即使软件包已安装并存在。
即
using IdentityServer4.AccessTokenValidation;
或
using IdentityServer4;
您需要 this 包。并使用命名空间 IdentityServer4.AccessTokenValidation
好吧,我刚刚关闭并重新打开 Visual Studio 2017,问题就消失了。可能 Visual Studio 第一次拉下 IdentityServer4.AccessTokenValidation 包时卡住了,重新打开项目导致它再次尝试,这次成功了。
只是为了提供update/answer,后续版本的IdentityServer4包工作正常
目前正在使用 ID4 2.0 包。
您可以在 github IdentityServer4:
查看最新文档它使用 services.AddAuthentication
方法在 ConfigureServices
方法中设置身份验证选项。
这是他们正在使用的 test server 代码
我遇到了同样的问题,我按照 IdentityServer 4 Quickstart Samples, in particular the Javascript Client 示例解决了。
所以,这就是它在这里的作用:
检查依赖版本。报告了 IdentityServer 运行 .NET Core 2.0 的问题。在我的 API 项目中,我使用了 Microsoft.Asp.NetCore.All 2.0.5 版和 IdentityServer4.AccessTokenValidation 2.3.0 版。
在Startup.cs里面,在Configure方法中添加:app.UseAuthentication();因为它在 example.
中使用
最后一步是向 ConfigureServices 方法添加身份验证,因为它在 example:
public void ConfigureServices(IServiceCollection services) { services.AddMvcCore() .AddAuthorization() .AddJsonFormatters(); services.AddAuthentication("Bearer") .AddIdentityServerAuthentication(options => { options.Authority = "http://localhost:5000"; options.RequireHttpsMetadata = false; options.ApiName = "api1"; }); }
这就解决了我的问题。希望它也对你有用,请告诉我进展如何。
编码愉快。
如果您从 net core 1.1 迁移到 2.0,则需要按照 Identity Server: API Migration to ASP.NET Core 2
中所述迁移您的代码在配置函数中
Before:
app.UseIdentityServerAuthentication(new IdentityServerAuthenticationOptions
{
Authority = "http://localhost:5000",
RequireHttpsMetadata = false,
ApiName = "apiApp"
});
After:
app.UseAuthentication();
在 ConfigureServices 函数中
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme =
JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme =
JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(o =>
{
o.Authority = "http://localhost:5000";
o.Audience = "apiApp";
o.RequireHttpsMetadata = false;
});