【发布时间】:2016-03-01 01:44:47
【问题描述】:
我正在使用Microsoft.Owin.Security.Oauth 在 Web API 上实施 OAuth 2。
我想保持不记名令牌的大小,并将私人数据排除在外。为此,我想在其中存储一个会话 ID,然后在收到并处理会话 ID 后以编程方式填写 ClaimsIdentity。这也将在如何处理注销、角色更改和其他事情方面给我更大的灵活性。
这应该是拦截正确事件并添加委托的问题。但是,我找不到在我的授权提供程序("OAuthAuthorizationServerProvider" 的子类)上触发的事件。我认为"AuthorizeEndpoint" 会做到这一点,但它不会被用[Authorize] 属性修饰的API 方法触发,即使这些方法清楚地被检查为有效的不记名令牌。当我覆盖"MatchEndpoint" 时,我发现对一个用[Authorize] 修饰的方法的调用显示为"IsAuthorizeEndpoint" 和"IsTokenEndpoint" 都设置为false。后者对我有意义,前者没有。
我很困惑。知道这个库的人可以告诉我发生了什么以及我需要做什么来完成这个看似简单的想法吗?
【问题讨论】:
-
看起来可能类似于 stackoverflow.com/questions/21675844/… ??
标签: c# asp.net-web-api oauth owin