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

本文关键字:桌面 应用程序 网站 登录 | 更新日期: 2023-09-27 18:02:19

我有一个PHP Laravel 5.2网站。

我想使用C#创建一个桌面应用程序(类似于windows的下拉框应用程序),其中将有一个按钮"打开web",单击登录用户(在桌面应用程序中)应该登录到网站而无需询问任何凭据。

在网站中,我使用基于api_token的认证。

有一种可能的方法,我可以在网站上做一个端点来检查令牌,如果正确,让用户登录,但我认为这是不太安全的。

我已经检查了请求-响应日志fiddler的下拉框"打开dropbox.com"按钮,它不设置请求中的任何令牌。

问题是我怎样才能实现它?

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

一种方法是:

  1. 从桌面应用程序中的服务器请求一次使用(nonce)唯一代码,该代码指的是您想以
  2. 身份登录的用户
  3. 打开一个地址包含一次性代码的浏览器进程,就像这样:

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

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>

然后生成一个浏览器进程来打开这个文件。

要查看此文件,请使用Dropbox应用程序中的global链接,然后在初始网页加载后立即按Esc并获取url,该url应该如下所示:

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