从我在OpenID上所做的大部分阅读中,似乎可能需要浏览器。我正在编写一个WCF应用程序,并希望使用OpenID作为身份验证方法,但我的应用程序不是一个Web应用程序。是否可以在不需要Web浏览器的情况下一起使用WCF和OpenID?
答案 0 :(得分:10)
虽然OpenID可以宣称它的规范独立于cookie,因为规范并没有真正规定这些东西是如何使用的,实际上除了登录网站之外我从未见过一个好的OpenID解决方案,确实是它的主要用例。
然而,有一种很好的方法可以继续使用WCF和OpenID。将OAuth添加到组合中。 DotNetOpenAuth库有一个示例,显示如何通过OAuth授权WCF客户端调用WCF服务,在服务端,用户使用OpenID作为授权过程的一部分登录。
所以基本上如果你的WCF应用需要“登录”才能调用WCF服务,作为一次性设置的一部分:
这是因为在幕后,当用户通过Web浏览器对服务说“是”时,会为WCF应用程序分配一个特殊的机器友好凭证,它与每个WCF服务调用一样,以类似的方式使用用户名/密码将是。
查看DotNetOpenAuth库。它有样本和你需要的一切来使这个工作。
答案 1 :(得分:1)
从阅读OpenID Authentication 2.0 Specification开始,我似乎已经得到了答案:
虽然协议中没有任何内容需要JavaScript或现代浏览器,但身份验证方案可以很好地与“AJAX”式设置配合使用。这意味着最终用户可以向依赖方证明自己的身份,而无需离开当前的网页。
OpenID身份验证仅使用标准HTTP(S)请求和响应,因此不需要User-Agent或其他客户端软件的任何特殊功能。 OpenID与使用cookie或依赖方或OpenID提供程序会话管理的任何其他特定机制无关。用户代理的扩展可以简化最终用户交互,但不需要使用协议。
现在我只需找出一种聪明的方法让它与基于WCF的依赖方合作......
答案 2 :(得分:1)