voy*_*861 9 asp.net-authorization asp.net-core-mvc .net-6.0
我想将[Authorize]数据属性设置为应用程序而不是控制器
[Authorize]
public class CustomerController : Controller {}
Run Code Online (Sandbox Code Playgroud)
这样[Authorize]我就可以仅为该控制器设置授权;我想为每个控制器设置它。
到目前为止,我在program.cs课堂上尝试过这些......
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
services.AddMvc(config =>
{
config.Filters.Add(new AuthorizeFilter(policy));
});
Run Code Online (Sandbox Code Playgroud)
两者都不起作用 - 它构建了应用程序,但在浏览器上它无法访问网站。那么如何在 .NET 6 中全局设置此属性?
builder.services.AddMvc(options => options.Filters.add(new AuthorizeAttribute));
Run Code Online (Sandbox Code Playgroud)
这会引发错误
无法解析方法“Add(Microsoft.AspNetCore.Authorization.AuthorizeAttribute)”
Dig*_*Dan 15
在 ASP.NET Core 6.0 中执行此操作的方法略有不同。Microsoft Docs 有一篇文章展示了执行此操作的两种方法:使用受授权保护的用户数据创建 ASP.NET Core 应用程序 - 需要经过身份验证的用户。
选项 1 - 本文称之为“首选方式” - 将以下代码添加到您的Program.cs文件中:
builder.Services.AddAuthorization(options =>
{
options.FallbackPolicy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
});
Run Code Online (Sandbox Code Playgroud)
选项 2 - 本文展示了使用授权过滤器的替代方法:
builder.Services.AddControllers(config =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
config.Filters.Add(new AuthorizeFilter(policy));
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14489 次 |
| 最近记录: |