如果我理解正确:你想从MVC应用程序的代码隐藏中访问Web API。 今天,Azure Active Directory可以实现该拓扑,您可以在示例中看到该动态 https://github.com/AzureADSamples/WebApp-WebAPI-OpenIDConnect-DotNet (我正在将其更新为最新的ADAL刷新,您可以查看RCUpdate分支以查看正在进行的工作)。
但是,ADFS WS2012 R2目前无法实现该拓扑。原因是MVC应用程序(以及任何其他网站)是一个机密客户端,OAuth2处理的方式与公共客户端不同(您作为起点使用的WPF应用程序是公共客户端)。在您定位的方案中,要使用ADAL从机密客户端获取令牌,您将使用ADAL的方法AcquireTokenByAuthorizationCode(请参阅我提到的示例)。但是,ADFS WS2012 R2无法处理该方法。今天,ADFS WS2012 R2中的OAuth2支持仅限于公共客户端。
抱歉带来坏消息!作为缓解措施,您可以考虑将ADFS与AAD租户联合:此时您可以执行您想要的操作,作为ADFS用户进行身份验证,但从AAD获取令牌(它支持必要的OAuth2授权)。 HTH V.