在ASP.NET Web Api 2中使用OAuth承载令牌和OAuthBeareAuthenticationOptions时的令牌缓存机制

在ASP.NET Web Api 2中使用OAuth承载令牌和OAuthBeareAuthenticationOptions时的令牌缓存机制,oauth,asp.net-web-api2,openid,claims-based-identity,bearer-token,Oauth,Asp.net Web Api2,Openid,Claims Based Identity,Bearer Token,在我的startup.auth.cs中,我执行以下操作: app.UseOAuthBearerAuthentication() 我为它提供了一个OAuthBeareAuthenticationOptions,其中包含一系列为使用Azure Active Directory B2C租户而定制的选项。这本身运行良好。我可以使用我的MVC应用程序登录,获得一个承载令牌并调用这个WebAPI2项目,我看到了一个有效的身份验证。一切都很好 然而,我需要做的是在验证过程中做更多的工作,并向身份添加一些自定

在我的startup.auth.cs中,我执行以下操作:

app.UseOAuthBearerAuthentication()
我为它提供了一个OAuthBeareAuthenticationOptions,其中包含一系列为使用Azure Active Directory B2C租户而定制的选项。这本身运行良好。我可以使用我的MVC应用程序登录,获得一个承载令牌并调用这个WebAPI2项目,我看到了一个有效的身份验证。一切都很好

然而,我需要做的是在验证过程中做更多的工作,并向身份添加一些自定义声明。我正试图找出最好的地方是哪里。例如,在使用OpenID的MVC应用程序中,我可以使用OpenIdConnectAuthenticationOptions的OnSecurityTokenValidated通知来添加声明。这个新的令牌/身份和我的新声明似乎被缓存在整个神秘浩瀚的OWIN中的某个地方,这样后续调用的身份就有了我额外添加的声明,而不必每次都通过onsecuritytokenvalidation

对于对应的OAuthBeareAuthenticationOptions,我尝试在自定义OAuthBeareAuthenticationProvider的ValidateIdentity()中添加声明。这是可行的,但我不希望每次调用都会导致性能下降,因为这个回调每次都会受到影响,而不仅仅是在令牌验证期间

所以我的问题是,是否在所有Oauth承载令牌类和OWIN中间件中都有类似于OpenID对应项的ValidateToken()的地方,或者我必须编写自己的缓存机制


谢谢

你有没有想过?面对同样的问题你想过吗?面对同样的问题