【问题标题】:Integrating authentication between a web app and desktop app在 Web 应用程序和桌面应用程序之间集成身份验证
【发布时间】:2010-11-06 16:22:50
【问题描述】:

我想通过桌面应用程序将文件上传到网站,然后将用户带到该网站。该网站具有 Web 服务,但与网站一样需要身份验证。有没有办法在不强制用户进行两次身份验证的情况下做到这一点(一次在桌面应用程序中,一次在网络浏览器中)? 不幸的是,出于安全原因,您不能预填充类型文件的输入,这是有道理的,因为用户不希望您从他/她的计算机上传任意文件。但是如果他们有桌面应用程序,有什么办法可以解决这个问题吗? 或者也许让用户先登录到网络应用程序,然后可以重用身份验证cookie? 还有其他想法吗?

谢谢, 本

【问题讨论】:

  • 网络服务没有实现某种登录方法吗?

标签: web-services web-applications security


【解决方案1】:

我会通过 api 将 dekstop 应用程序用作网站应用程序的客户端。

所以,通过桌面应用程序登录。 api 返回一个身份验证令牌(如 Carlos 建议的那样),它可能是存储在您的数据库中一段时间​​的 md5 哈希,可能与客户端 IP 地址匹配。

然后,桌面应用程序可以作为经过身份验证的用户(通过使用身份验证令牌)在 api 上进行调用(例如上传文件)。

在加载网站时,url 可能是 http://website/login/{auth_token},其中将身份验证令牌添加到 url。 api 可以检查它是否是有效的身份验证令牌并考虑用户已登录。

【讨论】:

    【解决方案2】:

    您可以生成稍后在网站上使用的身份验证令牌。

    【讨论】:

      【解决方案3】:

      这完全取决于服务和站点的身份验证类型。是集成Kerberos,WS-Auth,是Basic/Digest HTTP,是forms/cookie吗?

      【讨论】:

        【解决方案4】:

        这个答案很可能不适用于非常普遍的用户在广泛开放的网络场景中,但在 Intranet 上下文中,使用 Windows 身份验证(在 ASP .Net 解决方案上)可以提供这个。

        【讨论】:

          猜你喜欢
          • 2011-01-22
          • 1970-01-01
          • 2010-12-22
          • 2016-03-14
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-06-18
          • 1970-01-01
          相关资源
          最近更新 更多