MVC Core 如何强制/设置所有操作的全局授权?
MVC Core How to force / set global authorization for all actions?
如何强制/设置 MVC Core 中所有操作的全局授权?
我知道如何注册全局过滤器 - 例如我有:
Setup.cs
services.AddMvc(options =>
{
options.Filters.Add(new RequireHttpsAttribute());
});
这工作正常,但我不能为授权添加相同的内容:
options.Filters.Add(new AuthorizeAttribute());
我有错误:
Cannot convert from 'Microsoft.AspNet.Authorization.AuthorizeAttribute()' to 'System.Type'
(方法.Add()
需要IFilterMetadata
类型)
我知道 - 从类似的问题 - 这适用于 MVC4-5...所以必须在 MVC Core 上进行一些更改...
有人知道吗?
services.AddMvc(config =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
config.Filters.Add(new AuthorizeFilter(policy));
});
将以下内容添加到 StartUp.cs 中的 ConfigureServices。这用于令牌验证并强制所有调用使用令牌进行验证。
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuerSigningKey = true,
IssuerSigningKey = new SymmetricSecurityKey(key),
ValidateIssuer = false,
ValidateAudience = false
};
});
services.AddMvc(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
})`
将此添加到 StartUp.cs 中的 Configure 方法。
app.UseAuthentication();
注意:在不需要的地方使用[AllowAnonymous]
如何强制/设置 MVC Core 中所有操作的全局授权?
我知道如何注册全局过滤器 - 例如我有:
Setup.cs
services.AddMvc(options =>
{
options.Filters.Add(new RequireHttpsAttribute());
});
这工作正常,但我不能为授权添加相同的内容:
options.Filters.Add(new AuthorizeAttribute());
我有错误:
Cannot convert from 'Microsoft.AspNet.Authorization.AuthorizeAttribute()' to 'System.Type'
(方法.Add()
需要IFilterMetadata
类型)
我知道 - 从类似的问题 - 这适用于 MVC4-5...所以必须在 MVC Core 上进行一些更改...
有人知道吗?
services.AddMvc(config =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
config.Filters.Add(new AuthorizeFilter(policy));
});
将以下内容添加到 StartUp.cs 中的 ConfigureServices。这用于令牌验证并强制所有调用使用令牌进行验证。
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuerSigningKey = true,
IssuerSigningKey = new SymmetricSecurityKey(key),
ValidateIssuer = false,
ValidateAudience = false
};
});
services.AddMvc(options =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
options.Filters.Add(new AuthorizeFilter(policy));
})`
将此添加到 StartUp.cs 中的 Configure 方法。
app.UseAuthentication();
注意:在不需要的地方使用[AllowAnonymous]