如何解决asp.net 默认授权不带 [Authorize]
我有一个 asp.netcore .net 5 应用程序。
我已获得使用控制器端点上方的 [Authorize]
属性的授权。
如何在不使用 [Authorize]
属性的情况下使其使用授权?以下是我设置授权的方式:
我在 ConfigureServices
有这个:
public void ConfigureServices(IServiceCollection services)
{...
FirebaseApp.Create(new AppOptions()
{
Credential = GoogleCredential.FromFile("firebase_admin_sdk.json"),});
services
.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.Authority = "https://securetoken.google.com/vepo-xxx";
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,ValidIssuer = "https://securetoken.google.com/vepo-xxx",ValidateAudience = true,ValidAudience = "vepo-xxx",ValidateLifetime = true
};
});
...}
在我 Configure
中:
public void Configure(IApplicationBuilder app,IWebHostEnvironment env,VepoContext context,ISearchIndexService searchIndexService)
{...
app.UseAuthentication();
app.UseAuthorization();
...}
解决方法
请参阅 Require authenticated users 的文档。您可以向所有控制器添加 RequireAuthenticatedUser()
:
public void ConfigureServices(IServiceCollection services)
{
...
services.AddControllers(config =>
{
// using Microsoft.AspNetCore.Mvc.Authorization;
// using Microsoft.AspNetCore.Authorization;
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
config.Filters.Add(new AuthorizeFilter(policy));
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。