WNetUseConnection API를 사용하여 원격 파일에 안전하게 액세스
도메인 수준 가장을 활용하는 기존 드라이브 매핑이나 방법과 달리 WNetUseConnection API는 신뢰할 수 없는 도메인의 원격 파일 공유에 액세스할 수 있는 보다 안전한 방법을 제공합니다.
WNetUseConnection 사용
드라이브를 매핑하지 않고 연결을 설정하려면 다음 매개변수를 사용하여 WNetUseConnection을 호출하세요.
hwndOwner
: 상위 창에 대한 핸들을 사용하지 않거나 IntPtr.Zero
으로 설정합니다. lpNetResource
: NETRESOURCE
구조를 사용하여 원격 서버 및 디스크 리소스를 지정합니다. lpPassword
: 원격 인증을 위해 비밀번호가 필요합니다. lpUserID
: 원격 공유에 액세스할 수 있는 권한이 있는 사용자 계정의 이름입니다. dwFlags
: 기본 설정은 0을 사용합니다. lpAccessName
: 이 작업은 아무 관련이 없으므로 null 또는 빈 문자열을 사용하세요. lpBufferSize
: 버퍼 크기가 필요하지 않으므로 null로 설정합니다. lpResult
: 사용되지 않은 반환 값이 null로 설정되었습니다. 샘플 코드
다음 코드는 WNetUseConnection을 사용하여 네트워크 드라이브를 매핑하지 않고 UNC 경로에 연결하는 방법을 보여줍니다.
<code class="language-csharp">// 连接到UNC路径,无需映射驱动器 using System.Runtime.InteropServices; namespace RemoteFileAccess { class Program { [DllImport("Mpr.dll")] private static extern int WNetUseConnection(IntPtr hwndOwner, NETRESOURCE lpNetResource, string lpPassword, string lpUserID, int dwFlags, string lpAccessName, string lpBufferSize, string lpResult); [StructLayout(LayoutKind.Sequential)] private struct NETRESOURCE { public int dwScope; public int dwType; public int dwDisplayType; public int dwUsage; public string lpLocalName; public string lpRemoteName; public string lpComment; public string lpProvider; } static void Main(string[] args) { // 提供凭据和远程UNC路径 string remoteUNC = @"\server\share"; string username = "username"; string password = "password"; // 初始化NETRESOURCE结构 NETRESOURCE nr = new NETRESOURCE(); nr.dwType = 1; // RESOURCETYPE_DISK nr.lpRemoteName = remoteUNC; // 建立连接,无需映射驱动器 int result = WNetUseConnection(IntPtr.Zero, nr, password, username, 0, null, null, null); // 检查错误 if (result == 0) { // 连接已建立 Console.WriteLine("已连接到远程文件共享。"); } else { // 发生错误 Console.WriteLine($"错误:{result}"); } } } }</code>
이 코드는 영구 네트워크 드라이브 매핑을 생성하지 않고 원격 파일 공유에 안전하게 연결하여 보안을 강화하고 파일 액세스 프로세스를 단순화하는 방법을 보여줍니다. 예제 코드의 \servershare
, username
및 password
을 실제 값으로 바꿔야 합니다.
위 내용은 WnetUseConnection은 드라이브 매핑없이 원격 파일에 어떻게 안전하게 액세스 할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!