在Web应用程序和桌面应用程序之间集成身份验证

时间:2009-06-29 12:39:49

标签: web-services web-applications security

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

谢谢, 本

4 个答案:

答案 0 :(得分:3)

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

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

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

这一切都取决于服务和站点的身份验证类型。它集成了Kerberos,WS-Auth,它是Basic / Digest HTTP,它是form / cookie吗?

答案 3 :(得分:0)

这个答案很可能不适用于普通用户的广泛开放网络方案,但在Intranet环境中,使用Windows身份验证(在ASP .Net解决方案上)会提供此功能。