2012-11-04 105 views
5

在IIS中,我有一个Web服务,该服务在具有访问远程计算机上驱动器的用户身份的应用程序池下运行。这样,当Web服务运行并尝试访问远程机器来读取文件时,我们不会收到任何无效的授权错误。如何访问node.js中的共享网络驱动器

我现在写了我的第一个Node.js应用程序,但我不确定如何允许从应用程序访问文件流到远程计算机。我有我想要读取的远程计算机文件的unc路径名,但我不确定是否必须传递用户的凭据以访问该文件,或者必须在特定凭证下运行Node.js应用程序。

任何线索?

我知道有IIS的节点,但有没有IIS做到这一点的另一种方式。

更新:

刚跑到我的应用程序下,我的用户帐户,该帐户被配置为允许访问到远程机器,我可以访问远程计算机,而不只是用改变我的代码(换句话说Unc路径直接)。然而,我怎样才能做到这一点使用其他用户的凭据(即在Node.js模仿?)

+0

我不是一个Windows的家伙,但是你不能让节点退出循环,而是将远程/网络驱动器映射为本地驱动器(Z:等),然后使用传统的本地文件系统方法在nodejs中访问它? (假设我正确理解你的问题)。 – ravi

回答

1

节点不处理像.NET应用程序的模拟,因为NodeJS不是Windows特定的,所以它不知道窗口处理权利和海拔的方式。

但这不是问题。我在大型金融网络中使用了以下技术。

正如您自己指出的那样,最好的解决方案是为您的nodeJS应用程序拥有一个专用的用户帐户,并拥有访问UNC的足够权限,但没有其他权限。然后,当您运行该应用程序时,以该用户身份运行它。

让我建议您设置一个服务来运行nodejs应用程序并在服务中指定用户帐户。这使得它更容易,更安全。如果您的应用程序遭到黑客攻击,黑客将无法逃避该帐户的限制。