2010-04-29 66 views
0

我正在用c#編寫一個應用程序,該應用程序使用遠程連接連接到其他機器,並在每臺機器上植入一個可執行文件,然後執行它。每臺機器在本地創建一個專用共享文件夾,然後異步地嘗試寫入其他機器的共享文件夾。訪問來自不在域中的計算機的共享文件夾

問題是,當一臺機器嘗試寫入不同機器的共享文件夾(以防它們不在同一個域中)時,它會失敗。如果我嘗試從一臺機器手動訪問另一臺共享文件夾,即使我可以看到共享文件夾爲每個人提供完整權限,但仍會收到提示輸入憑據。

有誰知道如何解決這個問題?

謝謝!

+0

你是什麼用戶?不認爲你可以是本地系統或本地服務。 – 2010-12-23 02:53:57

回答

0

您可以使用通過P /調用LogonUser的API來實現這一點,但你會需要一些機制以獲取用戶的密碼(用戶的鍵盤是一個好這個;))

DllImport("advapi32.dll", SetLastError=true)] 
    static extern bool LogonUser(
    string principal, 
    string authority, 
    string password, 
    LogonTypes logonType, 
    LogonProviders logonProvider, 
    out IntPtr token); 

void login(){ 
    bool result = LogonUser(
    "Alice", "ACME", // "ACME\Alice" 
    pwd, 
    LogonTypes.Batch, 
    LogonProviders.Default, 
    out token); 
    if (result){ 
     //off you go 
    } 
} 
+0

這就是問題所在,我無法獲取用戶憑據,這就是爲什麼我使用共享文件夾,所以我不需要它。謝謝。 – Haviva 2010-04-29 12:28:49

+0

您無法訪問共享文件夾而無需對其進行身份驗證?安全影響是巨大的! 你唯一的選擇是讓你的網絡管理員允許訪客訪問共享,但這有點瘋狂.. – 2010-04-29 13:13:33

相關問題