Hoc*_*eyJ 14 c# authorization asp.net-core-mvc asp.net-core
我正在学习.NET Core MVC中的身份验证/授权.
我正在尝试创建一个只能由'Admin'访问的控制器,但会收到以下错误.
处理请求时发生未处理的异常.
InvalidOperationException:找不到名为:'Admin'的AuthorizationPolicy.
这是我的代码.我该怎么办?
[HttpGet("~/Test")]
[Authorize("Admin")]
public async Task<string> MyMethod()
{
return await Task<string>.Run(() => "Hello Admin");
}
Run Code Online (Sandbox Code Playgroud)
Joe*_*tte 18
您可以在Startup.cs中定义匹配策略
services.AddAuthorization(options =>
{
options.AddPolicy("Admin",
authBuilder =>
{
authBuilder.RequireRole("Administrators");
});
});
Run Code Online (Sandbox Code Playgroud)
authBuilder上有其他方法,您可以使用基于策略的授权来声明声明或特定用户名或自定义规则,并从Startup中的中心位置控制规则 https://docs.asp.net/en/latest/security/authorization /policies.html
Hoc*_*eyJ 14
与此处的文档一致,您尚未正确添加Authorization属性.这是正确的方法.
[HttpGet("~/Test")]
[Authorize(Roles ="Admin")]
public async Task<string> MyMethod()
{
return await Task<string>.Run(() => "Hello Admin");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10495 次 |
| 最近记录: |