Asp.net mvc 4 Webapi中的Web应用程序请求实体

Asp.net mvc 4 Webapi中的Web应用程序请求实体,asp.net-mvc-4,asp.net-web-api,oauth,Asp.net Mvc 4,Asp.net Web Api,Oauth,我已经创建了一个mvc web应用程序,它使用openid通过Azure Ad进行身份验证,并将声明与令牌一起获取。我正在与Web Api交互以进行业务事务。web Api配置为oauth承载令牌 我在Azure Ad中为Web应用程序和Web Api创建了单独的oauth客户端。我能够使用AuthenticationContext从Mvc控制器获取Web Api的令牌,以发送到Web Api的请求。我需要知道如何将当前用户声明发送到Web Api。Web Api中的声明与Web应用程序中的用户

我已经创建了一个mvc web应用程序,它使用openid通过Azure Ad进行身份验证,并将声明与令牌一起获取。我正在与Web Api交互以进行业务事务。web Api配置为oauth承载令牌

我在Azure Ad中为Web应用程序和Web Api创建了单独的oauth客户端。我能够使用AuthenticationContext从Mvc控制器获取Web Api的令牌,以发送到Web Api的请求。我需要知道如何将当前用户声明发送到Web Api。Web Api中的声明与Web应用程序中的用户声明不同


让我在这里提供更多的上下文。我创建了一个MVC Web应用程序和一个Web Api层。MVCWeb应用程序被配置为使用Azure AD使用OpenID身份验证,我已经配置了WebAPI层以使用OAuth承载令牌进行授权。webapi层中的操作将通过ajax请求被调用,并且承载令牌将被添加到每个ajax请求的头中。当用户在Web应用程序中进行身份验证时,除了Azure Ad的声明之外,还会向用户添加其他声明。我可以使用AuthenticationContext.AcquireToken为Web Api层创建一个令牌,但Web Api的令牌没有Web应用程序中的用户信息。

我在这里暗中冒险,基于我认为正在发生的事情


声明由用户附加,因此理论上,只要两个应用程序共享相同的用户数据存储,您在一个位置添加的任何声明都应该在另一个位置可用。但是,声明是在身份验证点加载的,不会动态更新。因此,如果您已经登录到web应用程序,并且使用web Api添加了声明,则在重新验证用户之前,该声明在web应用程序端将不可用。

谢谢您的回复。实际上,我没有取得多大进展。UserAssertion需要一个属于Web Api的令牌,我无法获得创建UserCredential对象的用户密码。您好,这确实提供了一些上下文。谢谢只是一个一般性的澄清,如何将为web Api授权获得的令牌与用户关联。显然,我从Azure Ad收到的Web Api令牌与任何用户id都没有关联。