我创建了一个ASP.NET MVC 4 WebApi应用程序,它使用基于声明的身份验证,并使用Azure ACS作为联合身份验证。一切正常,开箱即用,我的意思是我已经将Azure ACS配置为STS参考,我已经为SWTSecurityTokenHandler添加了类,以便能够从ACS读取SWT令牌,现在当我进入安全地址时我的浏览器,我被重定向到ACS页面,在那里我可以选择我的身份提供者,选择一个我登录到这个IdProv,然后我被重定向到我的应用程序,它可以从生成的令牌读取声明。
现在我的问题是,我正在尝试重新实现相同的请求 - >重定向 - >响应路径(从某些身份提供商到ACS和我的应用程序),只使用fiddler来模仿请求和响应。我能够从我的IdProv获取令牌,将其传递给ACS,并从ACS获取SWT令牌。
但无论如何我尝试将ACS令牌传递给我的应用程序,它总是将我重定向到ACS IdProv选择页面。我不知道如何传递令牌,所以我的应用程序会尝试使用它。你们可以告诉我吗?
我问的是,因为我想创建一个JS客户端,稍后将调用此登录逻辑,这就是我无法使用ACS IdProv选择屏幕的原因。
我做错了什么,或者我的整个逻辑(传递令牌)是错的?我真的很感激一些帮助,我现在已经挣扎了近一个星期了。
--------------------------------------- UPDATE ------- -----------------------------------
我尝试创建类似于此ACS示例中显示的内容:http://msdn.microsoft.com/en-us/library/hh674475
这是一个显示如何从ACS获取OAuth令牌的示例,我已设法使用以下代码从我的ACS获取令牌:http://pastebin.com/tyTdNVCf
代码的最终版本尝试将获取的令牌传递给我的应用程序(在localhost上运行),但我的应用程序总是返回ACS IdProv选择页面作为响应。我不知道我做错了什么......