Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 客户端WPF应用程序如何通过Azure上的WCF服务进行身份验证?_C#_Wpf_Wcf_Azure_Acs - Fatal编程技术网

C# 客户端WPF应用程序如何通过Azure上的WCF服务进行身份验证?

C# 客户端WPF应用程序如何通过Azure上的WCF服务进行身份验证?,c#,wpf,wcf,azure,acs,C#,Wpf,Wcf,Azure,Acs,我目前正在考虑创建一个应用程序来部署到azure云。考虑Amazon上的Azure的主要原因是访问控制服务。我想为我的应用程序接受尽可能多的不同类型的凭证,尤其是Facebook 一些用户将使用基于HTML的应用程序,另一些用户将使用WPF客户端应用程序。问题是,我如何使用他们想要的提供商对客户端进行身份验证,然后与WCF服务通信。我猜我需要在我的应用程序中使用web浏览器组件,或者弹出一个外部浏览器(理想情况下支持偏执用户的两个选项),但是我不清楚如何在WCF服务中使用该连接。考虑将用户对应用

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


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

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

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


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

我想你的目的是想知道如何验证/授权用户使用此WCF服务,对吗?在本例中,您可以查看“Windows 7 phone应用程序”示例:。在这里,您将看到这个示例使用“javascriptnotify”协议

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

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

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

对于这两种情况,都可以使用SAML令牌


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

您正在寻找的称为“活动联合”。 看


通常,您的web客户端将使用被动表单,在该表单中,它们被重定向到安全令牌服务拥有的登录页面。您无法重定向wpf或winforms应用程序,因此您的应用程序需要经历浏览器在幕后为您所做的动作,包括协商和缓存从STS收到的安全令牌,然后在每次请求时显示它。

+1个有趣的问题。我不确定是否有一个简单的答案,但我会关注这一个。刚刚发现可能有用,我现在正在阅读。不幸的是,浏览器外示例使用用户名和密码,因此不支持FaceBook查看Vittorio Bertocci的博客(也称为Captain Identity)。如果你能做到,它就在那里。有一个帖子告诉你如何在地铁里做到这一点。WCF服务需要知道用户是谁,并且能够保证其真实性,我不完全清楚您的解决方案打算如何提供这一点。SWT是否对应用程序或用户进行身份验证?