【发布时间】:2019-09-26 23:43:29
【问题描述】:
this 网站上有一个用于 Jwt-Rsa-Hmac 身份验证 的示例代码,this repo。
我一直在尝试将其从 Asp.Net Core 1 转换为 Asp.Net Core 2。
我创建了一个新的 Asp.Net Cor 2.1 项目,在搜索了所需的更改后,我想出了this 代码。
它确实创建了令牌,但在使用令牌时,我总是得到401(未经授权)。
已经几天了,没有成功...
如果有人可以帮助我,我将不胜感激。
这是我的启动课:
public class Startup
{
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
public IConfigurationRoot Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.Configure<JwtSettings>(Configuration.GetSection("jwt"));
var x = services.AddSingleton<IJwtHandler, JwtHandler>();
var sp = services.BuildServiceProvider();
var jwtHandler = sp.GetService<IJwtHandler>();
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(options =>
{
options.TokenValidationParameters = jwtHandler.Parameters;
});
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseDeveloperExceptionPage();
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
app.UseAuthentication();
app.UseMvc();
}
其余的示例代码在this repo 中。
我已经研究过的链接:
Token Authentication stopped working after migration from ASP.NET Core 1 to ASP.NET Core 2
【问题讨论】:
标签: c# asp.net-core jwt rsa hmac