0

我們的應用程序使用Shared Folder進行導入或導出數據操作。許多工作站從應用程序訪問這些共享位置。如何在Delphi 10.1 Berlin中安全地訪問「共享文件夾」?

我們需要保護共享文件夾以及從應用程序訪問此共享文件夾的過程。

我們嘗試編寫一個示例應用程序,它嘗試使用Network Service帳戶連接到共享文件夾,但我們未能這樣做。與Standard Domain User一樣。

代碼段:

Result := LogonUser(PChar(User), PChar(Domain), 
    PChar(Password), LogonType, LogonProvider, TokenHandle); 

    if Result then 
    begin 
    Result := ImpersonateLoggedOnUser(TokenHandle); 
    end; 

任何人有關於保護這個工作流程的任何其他建議嗎?

更新: 我嘗試過下面的可能性使用Network Service帳戶,但這也失敗。

>runas /user:"NT AUTHORITY\Network Service" "C:\Windows\system32\notepad.exe" 
Enter the password for NT AUTHORITY\Network Service: 
RUNAS ERROR: Unable to acquire user password 
+0

共享文件夾是否允許訪問您的應用程序運行的「計算機」? –

+0

@SertacAkyuz - 早些時候,每個人都可以訪問它。但現在我們正在限制訪問。我正嘗試在我自己的機器上執行上面的示例應用程序。我也可以訪問「網絡服務」,但無法成功。 – Dev

回答

0

您需要使用windows api函數WNetAddConnection2來添加共享。 請參閱鏈接頁面底部的示例代碼。 添加後,您可以訪問該共享文件夾。

不要忘記在訪問WNetCancelConnection2後刪除連接。

+0

我已經經歷了它,它工作正常。但我正在尋找另一種方法,它不需要在某個位置或數據庫中存儲用戶名和密碼。其他訪問共享文件夾的方法.... – Dev

+0

創建一個以正確帳戶運行的服務。將您的客戶連接到該服務。但問題仍將存在於其他層面。客戶也應該認證。 –

相關問題