如何将全局授权属性添加到 ASP.NET Core 6 MVC?
How to add global authorize attribute to ASP.NET Core 6 MVC?
我想将 [Authorize]
数据属性设置为应用程序而不是控制器
[Authorize]
public class CustomerController : Controller {}
有了这个[Authorize]
我可以只为这个控制器设置权限;我想为每个控制器设置它。
到目前为止,我在 program.cs
class...
中尝试了这些
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
services.AddMvc(config =>
{
config.Filters.Add(new AuthorizeFilter(policy));
});
两者均无效 - 它构建了应用程序,但在浏览器上无法访问网站。那么如何在 .NET 6 中全局设置此属性?
builder.services.AddMvc(options => options.Filters.add(new AuthorizeAttribute));
这会引发错误
Cannot resolve method 'Add(Microsoft.AspNetCore.Authorization.AuthorizeAttribute)'
您可以试试这些代码:
services.AddAuthorization(options =>
{
options.FallbackPolicy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
});
在 ASP.NET Core 6.0 中执行此操作的方法略有不同。 Microsoft Docs 有一篇文章展示了执行此操作的两种方法:Create an ASP.NET Core app with user data protected by authorization - Require authenticated users.
选项 1 - 本文称之为“首选方式”- 将以下代码添加到您的 Program.cs
文件中:
builder.Services.AddAuthorization(options =>
{
options.FallbackPolicy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
});
选项 2 - 文章展示了使用授权过滤器的替代方法:
builder.Services.AddControllers(config =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
config.Filters.Add(new AuthorizeFilter(policy));
});
我想将 [Authorize]
数据属性设置为应用程序而不是控制器
[Authorize]
public class CustomerController : Controller {}
有了这个[Authorize]
我可以只为这个控制器设置权限;我想为每个控制器设置它。
到目前为止,我在 program.cs
class...
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
services.AddMvc(config =>
{
config.Filters.Add(new AuthorizeFilter(policy));
});
两者均无效 - 它构建了应用程序,但在浏览器上无法访问网站。那么如何在 .NET 6 中全局设置此属性?
builder.services.AddMvc(options => options.Filters.add(new AuthorizeAttribute));
这会引发错误
Cannot resolve method 'Add(Microsoft.AspNetCore.Authorization.AuthorizeAttribute)'
您可以试试这些代码:
services.AddAuthorization(options =>
{
options.FallbackPolicy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
});
在 ASP.NET Core 6.0 中执行此操作的方法略有不同。 Microsoft Docs 有一篇文章展示了执行此操作的两种方法:Create an ASP.NET Core app with user data protected by authorization - Require authenticated users.
选项 1 - 本文称之为“首选方式”- 将以下代码添加到您的 Program.cs
文件中:
builder.Services.AddAuthorization(options =>
{
options.FallbackPolicy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
});
选项 2 - 文章展示了使用授权过滤器的替代方法:
builder.Services.AddControllers(config =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
config.Filters.Add(new AuthorizeFilter(policy));
});