有没有人知道在 WinForm(.net 2.0 和 C#)中有或没有 RPX 的 OpenID 的最佳(或任何)教程?
4 回答
其他不鼓励在应用程序中嵌入 OpenID 的回答者所说的话也是如此。
但我要补充一点:你应该看看 OAuth。它很可能正是您正在寻找的东西,并且实际上是为应用程序设计的,用于对 Web 服务进行身份验证。
由于 WinForms 是一个客户端接口,而 OpenID 要求您实际运行一个 Web 服务器,您可能只想在某处设置一个执行 OpenID 身份验证的 Web 应用程序,然后向您的应用程序返回某种证明,断言用户已登录。然后嵌入浏览器控件,以便用户可以通过此 Web 应用程序登录。
请注意,如果用户可以控制终端,这不会给您带来任何安全性 - 他们可以将请求重定向到他们控制下的假服务器,破解二进制文件等。所以我不确定这将如何有用结束 :)
Open ID 协议不是您可以从任何地方调用的东西。它依靠 Web 浏览器重定向将用户发送到提供商的登录页面并返回给依赖方。
如果您考虑一下,尝试从客户端应用程序中使用 Open ID 并没有多大意义。Open ID 依赖于信任其 Web 浏览器的用户,因此当他们被重定向到其 Open ID 提供商的登录页面时,他们可以查看 URL 并确保他们正在将其凭据输入到受信任的一方。
OTOH,用户不信任您的 Winforms 应用程序。如果您将登录页面实现为 WinForm,他们如何知道使用他们的凭据信任您的应用程序?
在 WinForms 应用程序中执行此操作的唯一方法是将 Web 浏览器控件嵌入到您的登录表单中,但我认为与它进行通信以获取身份验证信息可能是一个挑战。
这里有一个用于 Windows 窗体的 OpenID 认证客户端库: