【发布时间】:2012-04-26 03:12:53
【问题描述】:
最近,我们开始了一个相当大的项目(C# XNA 游戏)。
将所有文件存储在远程服务器中,使用数据库存储文件“版本”并让修补程序下载较新版本并删除任何过时的文件,这似乎是一个非常明显的解决方案。
现在理论上这一切都很好,我们甚至找到了一个有空间的服务(SkyDrive 提供 25GB 的报价)。
当涉及到文件操作时,问题就出现了。
我们正在寻找:
- 可以以编程方式将文件下载/上传到 SkyDrive 或从 SkyDrive 上传。
- 具有包含 uname/pass 的安全方式。
请允许我解释一下。
问题是,我们必须在我的个人帐户上制作 SkyDrive(因为 25gb 优惠仅适用于老用户)。我对有人获得我的密码不太满意,即使我显然会将其更改为完全过时的东西,但他们仍然可以访问我的大多数其他 hotmail/msn 相关内容。 (我想这是重新制作这一切的理由吗?)。因此,如果可能的话,我会确保程序中的实际 uname/pass 安全。因为它是.NET 并且是按需编译的(并且可以很容易地被反编译),所以我怀疑在这种情况下真正的安全性是不可能的(如果可以确保安全,请告诉我如何)。
除此之外,没有高效且官方的 SkyDrive API。这意味着存在更大的安全漏洞(参见上一段),并且通信不一定按预期工作)。这也意味着通信可能会很慢 - 如果您有 1000 个用户下载同一个文件,那就很糟糕了。
所以要制定所有这些:
考虑到它已链接到我的个人帐户,(读取 API) 使用 SkyDrive 作为修补程序的存储服务器的正确方法是什么?
小旁注,如果必须的话,我可以是邪恶的,让我们的慢艺术家来托管服务器
编辑 1:
我们的想法是让任何人都能够下载客户端,但启动任何东西都需要我们数据库上的活动帐户。因此,每个人都可以阅读文件本身并没有问题。因此,我将添加以下内容:如果文件是公开的,如何以编程方式从 SkyDrive 直接下载?当前链接指向他们的 Web UI。我的意思是以编程方式(可能在上传期间)以避免手动完成所有操作。
【问题讨论】:
-
这是一个坏主意。您无法在分布式程序中保护您的密码。
-
从技术上讲,数据库连接的工作方式类似。我会“作废”该帐户并转移到一个新帐户。
-
Here is the API for accessing SkyDrive content。 SkyCmd 是一个使用它的示例程序。
标签: c# .net networking patch onedrive