从我对 OpenID 所做的大部分阅读来看,似乎可能需要浏览器。我正在编写一个 WCF 应用程序并想使用 OpenID 作为身份验证方法,但我的应用程序不是 Web 应用程序。是否可以在不需要 Web 浏览器的情况下同时使用 WCF 和 OpenID?
最佳答案
虽然 OpenID 可以吹捧其规范独立于 cookie 等,因为规范实际上并没有规定如何使用这些东西,但实际上,除了登录网站之外,我从未见过一个好的 OpenID 解决方案,这真的是它的主要用例。
但是,有一个好方法可以继续使用 WCF 和 OpenID。将 OAuth 添加到组合中。 DotNetOpenAuth库有一个示例,展示了如何授权 WCF 客户端通过 OAuth 调用 WCF 服务,在服务端,用户使用 OpenID 作为授权过程的一部分登录。
因此,基本上,如果您的 WCF 应用程序需要“登录”才能调用 WCF 服务,则作为一次性设置的一部分:
这是因为在幕后,当用户通过 Web 浏览器对服务说"is"时,会为 WCF 应用程序分配一个特殊的机器友好凭证,它与每个 WCF 服务调用一起使用类似于用户名/密码是。
查看 DotNetOpenAuth 库。它有样本和一切你需要让它工作的东西。
关于wcf - 使用带有 WCF 且没有浏览器的 OpenID,这可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/843529/