我正在用c#編寫一個應用程序,該應用程序使用遠程連接連接到其他機器,並在每臺機器上植入一個可執行文件,然後執行它。每臺機器在本地創建一個專用共享文件夾,然後異步地嘗試寫入其他機器的共享文件夾。訪問來自不在域中的計算機的共享文件夾
問題是,當一臺機器嘗試寫入不同機器的共享文件夾(以防它們不在同一個域中)時,它會失敗。如果我嘗試從一臺機器手動訪問另一臺共享文件夾,即使我可以看到共享文件夾爲每個人提供完整權限,但仍會收到提示輸入憑據。
有誰知道如何解決這個問題?
謝謝!
我正在用c#編寫一個應用程序,該應用程序使用遠程連接連接到其他機器,並在每臺機器上植入一個可執行文件,然後執行它。每臺機器在本地創建一個專用共享文件夾,然後異步地嘗試寫入其他機器的共享文件夾。訪問來自不在域中的計算機的共享文件夾
問題是,當一臺機器嘗試寫入不同機器的共享文件夾(以防它們不在同一個域中)時,它會失敗。如果我嘗試從一臺機器手動訪問另一臺共享文件夾,即使我可以看到共享文件夾爲每個人提供完整權限,但仍會收到提示輸入憑據。
有誰知道如何解決這個問題?
謝謝!
您可以使用通過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
}
}
這就是問題所在,我無法獲取用戶憑據,這就是爲什麼我使用共享文件夾,所以我不需要它。謝謝。 – Haviva 2010-04-29 12:28:49
您無法訪問共享文件夾而無需對其進行身份驗證?安全影響是巨大的! 你唯一的選擇是讓你的網絡管理員允許訪客訪問共享,但這有點瘋狂.. – 2010-04-29 13:13:33
你是什麼用戶?不認爲你可以是本地系統或本地服務。 – 2010-12-23 02:53:57