wcf - 使用带有 WCF 且没有浏览器的 OpenID,这可能吗?

标签 wcf openid

从我对 OpenID 所做的大部分阅读来看,似乎可能需要浏览器。我正在编写一个 WCF 应用程序并想使用 OpenID 作为身份验证方法,但我的应用程序不是 Web 应用程序。是否可以在不需要 Web 浏览器的情况下同时使用 WCF 和 OpenID?

最佳答案

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

但是,有一个好方法可以继续使用 WCF 和 OpenID。将 OAuth 添加到组合中。 DotNetOpenAuth库有一个示例,展示了如何授权 WCF 客户端通过 OAuth 调用 WCF 服务,在服务端,用户使用 OpenID 作为授权过程的一部分登录。

因此,基本上,如果您的 WCF 应用程序需要“登录”才能调用 WCF 服务,则作为一次性设置的一部分:

  • 该应用程序会弹出一个浏览器,用户可以在其中看到 WCF 服务网站(OAuth 服务提供者)
  • 用户使用他们的 OpenID 登录(尽管用户可能已经登录,在这种情况下他们可以跳过此步骤)
  • OAuth SP 询问用户“您要授权此 [wcf 应用程序] 访问此站点吗?”
  • 用户说是,然后关闭浏览器。
  • 由于 OAuth 协议(protocol),WCF 应用现在可以访问 WCF 服务。

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

    查看 DotNetOpenAuth 库。它有样本和一切你需要让它工作的东西。

    关于wcf - 使用带有 WCF 且没有浏览器的 OpenID,这可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/843529/

    相关文章:

    openid - HoTMaiL 或 Windows Live ID 是否支持 OpenID 身份验证?

    c# - 在 WCF 服务中实现缓存

    c# - 使用 MediaElement 播放来自 Stream 的视频

    c# - SSL 证书 : No Client certificate key exhange

    delphi - Delphi 的 OpenID 库?

    c# - 如何仅通过 userinfo 端点而不是访问 token 获取声明

    c# - WCF - 实现需要加密一个 soap :body element, 的客户端如何?

    c# - 使用 WCF 服务从 CMS 获取数据的 Asp.Net Webforms 应用程序的性能

    android - Android 中的 Oauth2 刷新 token 更新

    .net - 本地主机上使用 DotNetOpenAuth 的 OpenID 提供程序