我将令牌从客户端发送到服务器,作为
授权:无记名eyJhbGciOiJodHR.
我想授权拥有令牌的用户,这里是我的代码。
services.AddAuthorization(auth =>
{
auth.AddPolicy("Have", new AuthorizationPolicyBuilder()
.AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme)
.RequireAuthenticatedUser().Build());
});
services.AddMvc(config =>
{
var policy = new AuthorizationPolicyBuilder()
.RequireAuthenticatedUser()
.Build();
config.Filters.Add(new AuthorizeFilter(policy));
});
app.UseJwtBearerAuthentication(options =>
{
options.AutomaticAuthenticate = false;
});即使我转动AutomaticAuthenticate,我也得到了500个错误,如果错误,那么401个错误
[Authorize(Policy ="Have")]
[HttpGet]
[Route("list")]
public IEnumerable<Products> List()
{
.......
}发布于 2016-02-27 11:48:29
对于这种行为,您不需要任何特殊的策略或配置,因为只允许访问授权用户是默认行为。没有令牌或过期令牌的用户是未经授权的,将无法使用[Authorize]属性访问控制器/操作。
你所需要的就是
services.AddAuthentication();以及您的操作/控制器上的AuthorizeAttribute。
这里的策略仅用于验证授权用户的条件,例如,如果用户在18岁或18岁以上(例如,请参阅this answer ),他的生日是用户的要求之一。
如果用户是而不是授权的,则策略将不会对进行验证。这意味着Authorize将始终失败并拒绝访问。
https://stackoverflow.com/questions/35667185
复制相似问题