【发布时间】:2020-08-14 14:24:30
【问题描述】:
我正在使用带有 Angular 的 asp net core 3.1 我想结合 windows 身份验证和 JWT 以便在路由和授权控制器时在 angular 中激活,但在我将令牌从拦截器传递到控制器时总是需要 windows 用户名和密码
request.clone({ headers: request.headers.set('Authorization', 'Bearer ' + user.token) });
我的 launchSettings.json 更改为下面
"windowsAuthentication": true,
"anonymousAuthentication": false,
将以下代码添加到启动配置服务中
var appSettingsSection = Configuration.GetSection("AppSettings");
services.Configure<AppSettings>(appSettingsSection);
// configure jwt authentication
var appSettings = appSettingsSection.Get<AppSettings>();
var key = Encoding.ASCII.GetBytes(appSettings.Secret);
services.AddAuthentication(x =>
{
x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(x =>
{
x.RequireHttpsMetadata = false;
x.SaveToken = true;
x.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuerSigningKey = true,
IssuerSigningKey = new SymmetricSecurityKey(key),
ValidateIssuer = false,
ValidateAudience = false
};
});
将以下代码添加到启动配置中
app.UseAuthentication();
app.UseAuthorization();
【问题讨论】:
标签: angular asp.net-core