【发布时间】:2017-07-10 19:44:41
【问题描述】:
Here 是我创建基于声明的授权属性的方式。但我对它的工作原理有些怀疑。
鉴于我的启动课程中的代码:
public void Configuration(IAppBuilder app)
{
if (app == null)
{
throw new ArgumentNullException(nameof(app));
}
app.UseIdentityServerBearerTokenAuthentication(new IdentityServerBearerTokenAuthenticationOptions
{
Authority = ConfigurationManager.AppSettings["Authentication:Authority"],
RequiredScopes = ConfigurationManager.AppSettings["Authentication:Scopes"].Split(' ').ToList(),
PreserveAccessToken = true
});
}
我期待如果我有这个属性给我的控制器并且我发送了一个无效的令牌(无效的签名)请求将被自动拒绝为未经授权,但来自属性的代码被执行。
OWIN 不应该先验证令牌吗?
如何确保令牌有效(有效的严格、签名、未过期等)并且仅在验证声明之后?
【问题讨论】:
-
来自您之前的问题:如果您将返回语句
return token.Claims.Any更改为return token.Claims.All,您仍然会收到此错误吗? -
@Tinwor 这将要求 所有 令牌上的声明是相同的,而不是只检查其中任何一个是否匹配
标签: c# asp.net-web-api2 owin jwt claims-based-identity