C# 登录并上传到 OneDrive 无需用户交互

标签 c# file-upload authentication windows-services onedrive

我目前正在开发一项 Windows 服务,该服务将检查和更新 Excel 文件并将它们上传到选定的云存储 - SharePoint 或 OneDrive。整个过程应该是全自动的,无需任何用户交互 - 所有必需的信息(用户名、密码等)都是配置文件的一部分。

除 OneDrive 部分外,一切进展顺利。我无法找到一个全自动的解决方案来登录和上传到这个云存储。我知道 Microsoft Live SDK,但它对非 WinPhone 和 -WinStore 应用程序的支持减少了,而且据我所知,它总是要求用户输入用户名、密码(网络浏览器组件)。

第二个选项是 SkyDriveClientAPI ( link here ),但此 API 不再有效(如问题中所述)。

有没有无需用户交互就可以使用 Live SDK 的方法,或者您对不同的方法有任何其他建议吗?

最佳答案

这部分是可以实现的

如其他答案中所述,一个驱动器需要用户身份验证,这使得全自动解决方案变得不可能。

然而,几乎自动的解决方案是可能的,这意味着可以创建一个应用程序,该应用程序将需要一次登录(第一次激活时)并在登录后,由用户授权运行应用程序,从那时起应用程序将能够自动运行( 上传、下载、创建文件夹、直接链接到上传的文件等...),即使应用程序关闭并重新启动机器,这将继续工作。

从一个驱动器连接中分离应用程序的唯一方法是注销应用程序(可以自动实现)。

这可以通过使用 LIVE sdk(桌面)并遵循单点登录指南来实现, 您很可能需要访问以下范围:

  • wl.basic
  • wl.signin
  • wl.skydrive_update
  • wl.offline_access

检查一个驱动开发中心:

为了实现此行为,我建议执行以下步骤:

使用示例构建基本演示 App 后:

  • 增强您的应用以使用单点登录功能,
  • 增强您的应用以刷新其身份验证 token (因此 session 不会超时等)

关于C# 登录并上传到 OneDrive 无需用户交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24812357/

相关文章:

php - 需要帮助使 PHP 登录 session 持续更长时间

c# - 如何使用列表(而不是数组)反序列化此 xml

C#:整数集的类型安全(例如枚举)

c# - 复制到数据库时 C# 程序出错

php - 在 Woocommerce 3 中添加和管理产品自定义上传字段

asp.net - Filehelpers Excel 到 Oracle db

drupal - 如何允许用户将大图像(> 5 GB)上传到 Drupal 站点?

git - 为 git pull/push 包含 .pem

api - RESTful API 中的多个身份验证级别

C# - 将类型数组转换为泛型列表