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

正しいアカウントで実行されるサービスを作成します。クライアントをそのサービスに接続します。しかし、問題は他のレベルにとどまるでしょう。クライアントも認証する必要があります。 –

関連する問題