C#使用桌面应用程序自动登录网站

时间:2016-08-12 09:08:30

标签: c#

我有一个PHP Laravel 5.2网站。

我想使用C#创建一个桌面应用程序(类似于Windows的drop-box应用程序),其中会有一个“Open web”按钮,单击登录用户(在桌面应用程序中) )应该登录到网站而不要求任何凭据。

在网站中,我使用基于api_token的身份验证。

有一种可能的方法是我可以在网站上设置一个终点来检查一个make用户登录的令牌是否正确,但我认为它不太安全。

我已经在fiddler中检查了请求 - 响应日志的下拉框“Open dropbox.com”按钮,它没有在请求中设置任何令牌。

问题是如何实现它?

1 个答案:

答案 0 :(得分:1)

一种方法可以做到以下几点:

  1. 从桌面应用程序中的服务器请求use-once(nonce)唯一代码,该代码指向您要以
  2. 身份登录的用户
  3. 使用包含此一次性使用代码的地址打开一个webbrowser进程,如下所示:

    http://www.your.server.com/the/page/you/want?auth=29874298798724982734

  4. Dropbox这样做的方法是在磁盘上创建一个临时html文件,其中包含一些javascript代码,用于将“表单”发布到其服务器上的安全页面

    https://www.dropbox.com/desktop_login
    
    form fields:
        buildno=Dropbox-win-7.4.30
        u=home
        c=en_US
        i=<some number>
        n data-nonce-c=<some large hex string>
    

    然后它产生一个webbrowser进程来打开这个文件。

    要查看此文件,请使用Dropbox应用中的globe链接,然后在初始网页加载后立即点击Esc并抓取应如下所示的网址:

    file://C:/users/USERNAME/appdata/local/temp/RANDOM.html
    

    然后打开此文件进行检查。