2012-11-04 145 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應用程序並在服務中指定用戶帳戶。這使得它更容易,更安全。如果您的應用程序遭到黑客攻擊,黑客將無法逃避該帳戶的限制。