Wpf 非web应用程序可以使用OpenID吗?

Wpf 非web应用程序可以使用OpenID吗?,wpf,openid,dotnetopenauth,Wpf,Openid,Dotnetopenauth,如何使我的桌面应用程序成为OpenID依赖方?在我看来,您应该提供一个小的web浏览器窗口,以便完成身份验证。交互不会通过您的代码进行 我不建议使用web scraper来实现这一点。在这样做时,您将代码放在用户的服务器和用户之间,这违反了依赖方看不到用户密码的约定 OAuth是用于桌面应用程序的正确技术,但它没有使用OpenID所拥有的现有密码生态系统,这不是OP的问题。看看,在我看来,它可以为您做到这一点。因为OpenID有一个指定的协议,它将一直工作(假设提供程序符合要求)或根本不符合。此

如何使我的桌面应用程序成为OpenID依赖方?

在我看来,您应该提供一个小的web浏览器窗口,以便完成身份验证。交互不会通过您的代码进行

我不建议使用web scraper来实现这一点。在这样做时,您将代码放在用户的服务器和用户之间,这违反了依赖方看不到用户密码的约定


OAuth是用于桌面应用程序的正确技术,但它没有使用OpenID所拥有的现有密码生态系统,这不是OP的问题。

看看,在我看来,它可以为您做到这一点。

因为OpenID有一个指定的协议,它将一直工作(假设提供程序符合要求)或根本不符合。此外,由于OpenID协议(至少是身份验证位,请参阅)由简单的HTTP请求组成,如果您知道如何发出此类请求,则可以在桌面应用程序中实现该协议

但这通常被认为是一个坏主意,因为有更好的技术(OAuth),它会破坏用户体验(与浏览器中的OpenID不同,请参见)


进一步阅读:

不要这样做

即使尝试这样做,也表明对OpenID提供的安全模型缺乏基本的理解。你必须问问自己,你将用于桌面应用程序的密码在保护什么。它是在保护本地计算机本身的资产吗?如果是这样,OpenID是没有用的,因为欺骗用户很简单网络,这样我就可以在不拥有OpenID的情况下侵入桌面应用程序。你对用户身份欺骗非常开放。你是否试图保护网络资产?OpenID再次失败,因为它没有授权你的桌面应用程序访问这些网络资产,这表明OpenID后面正在进行其他身份验证,因此每次你没有增加任何价值


OAuth是一种适合于允许您的桌面应用程序访问和保护网络资源的协议。如果您要保护桌面计算机上的本地资产,则本地加密是唯一的方法。

您说得对。我根本不想看到密码。这就是重点。我也考虑过OAuth,但它没有考虑使用t的意义在IIW8会议上讨论的Linden的OpenID+OAuth解决方案听起来似乎可以工作,但它确实不简单。