7

我目前正在考虑创建一个部署到天蓝色云的应用程序。考虑使用 Azure 而不是 Amazon 的主要原因是访问控制服务。我想为我的应用程序(尤其是 Facebook)接受尽可能多的不同凭证类型。

一些用户将使用基于 HTML 的应用程序,其他用户将使用 WPF 客户端应用程序。问题是,我如何使用他们想要的任何提供者对客户端进行身份验证,然后与 WCF 服务进行通信。我猜我需要在我的应用程序中使用网络浏览器组件,或者弹出一个外部浏览器(理想情况下支持偏执用户的两种选项),但我不清楚如何将该连接用于 WCF 服务.

4

3 回答 3

0

我认为您的意图是如何为此 WCF 服务验证/授权用户,对吗?在这种情况下,您可以查看“Windows 7 手机应用程序”示例:http: //msdn.microsoft.com/en-us/library/gg983271.aspx。在这里,您将看到此示例使用“javascriptnotify”协议。

对于 WPF WebBrowser 控件,有许多文章描述了如何从 DOM 中的 javascript 获取通知。

通过这种方式,您可以获得 WPF 应用程序的令牌,然后您将需要使用相同的令牌对 WCF 服务进行身份验证。

对于 Web 应用程序,您可以从 WSFam 模块获取令牌。一种方法可能是在 WSFam 上注册 SecurityTokenReceived 事件。

这样,对于这两种情况,您最终都可以获得 SAML 令牌。

然后,您可以为 WCF 编写您自己的自定义 SAML TokenProvider,并使用您从 ACS 获得的 SAML 令牌与您的服务器通信。

于 2011-09-20T21:17:49.913 回答
0

考虑将用户对应用程序的身份验证与应用程序和 WCF 服务之间的身份验证分开。

要保护对 WCF 服务的访问,您可以使用 ACS 使用简单 Web 令牌 (SWT) 实现身份验证。通过您选择的搜索引擎可以找到几个例子。

对不起,我现在不能给你一个更具体的例子。我使用 i 设备移动,因此对工具的访问有限。

于 2011-09-20T15:27:44.397 回答
0

您正在寻找的内容称为“活动联盟”。看到这个问题

通常,您的 Web 客户端将使用被动形式,在这种形式中,它们被重定向到安全令牌服务拥有的登录页面。您无法重定向 wpf 或 winforms 应用程序,因此您的应用程序需要完成浏览器在幕后为您执行的动作,包括协商和缓存您从 STS 收到的安全令牌,然后在每个请求中显示它。

于 2014-03-03T12:54:32.720 回答