使用OpenID和WCF而不使用浏览器,是否可能?

Chr*_*lum 9 openid wcf

从我在OpenID上完成的大部分阅读中,似乎可能需要浏览器.我正在编写一个WCF应用程序,并希望使用OpenID作为身份验证方法,但我的应用程序不是一个Web应用程序.是否可以在不需要Web浏览器的情况下一起使用WCF和OpenID?

And*_*ott 10

虽然OpenID可以在其规范中独立于cookie,因为规范并没有真正规定如何使用这些东西,实际上我从未见过一个好的OpenID解决方案除了登录网站之外的任何东西,这实际上是它的主要用例.

但是,还有一种很好的方法可以使用WCF和OpenID.将OAuth添加到组合中.该DotNetOpenAuth库有一个示例,演示如何WCF客户端可以得到授权通过OAuth,其中在服务端的用户使用OpenID登录作为授权过程的一部分来调用WCF服务.

所以基本上如果你的WCF应用程序需要"登录"以便调用WCF服务,作为一次性设置的一部分:

  1. 该应用程序弹出一个浏览器,用户可以看到WCF服务网站(OAuth服务提供商)
  2. 用户使用他们的OpenID登录(尽管用户可能已经登录,在这种情况下他们可以跳过此步骤)
  3. OAuth SP询问用户"您是否要授权此[wcf app]访问此站点?"
  4. 用户说是,并关闭浏览器.
  5. 由于OAuth协议,WCF应用程序现在可以访问WCF服务.

这是因为在幕后,当用户通过Web浏览器对服务说"是"时,会为WCF应用程序分配一个特殊的机器友好凭证,它与每个WCF服务调用一样使用用户名/密码将是.

查看DotNetOpenAuth库.它有样本和你需要的一切才能使这个工作.