如何在UWP应用程序中使用运行IoT Core的Raspberry Pi访问网络共享

我有一个ac#UWP应用程序,我打算在Windows 10 IoT Core上运行Raspberry PI。 我遇到的问题是当我尝试连接到UNC共享以复制某些文件时。

网络只是具有本地用户凭据的家庭网络,共享位于同一网络上的另一台计算机上。

在本地运行应用程序时,我可以使用await StorageFolder.GetFolderFromPathAsync(@"sharefolder"); 连接到共享,这工作正常,我假设这是因为我使用的凭据保存在本地计算机上。 当在RPi上运行时,收到的错误是:“系统找不到指定的文件。”

有没有人有关于我如何连接到这个驱动器的任何想法,我在这个阶段为任何事情做游戏来让它工作......

我试过的:

  • 共享对每个人都有权限,可以在没有凭据的情况下访
  • 网络共享计算机防火墙已关闭。
  • 清单具有专用网络,企业认证和互联网(两者)设置(假设本地工作正常)。
  • await StorageFolder.GetFolderFromPathAsync(@"sharefolder"); (“该系统找不到指定的文件。”)
  • 使用PowerShell与net use "sharefolder" "password" /USER:"user"作品和unc可以浏览
  • 尝试使用WNetAddConnection2作为阻止WNetAddConnection2类,它允许禁止的用户访问共享文件夹
  • 使用WNetUseConnection尝试使用用户提示符和不使用(都WNetUseConnection
  • FolderPicker或FileOpenPicker,但这些对于IoT核心似乎都是禁用的(https://ms-iot.github.io/content/en-US/win10/UnavailableApis.htm)。
  • 提前致谢,

    保罗。


    你有没有试过模仿? 以下是我在其中一个项目中使用的内容:

    [DllImport("advapi32.dll", SetLastError = true)]            
    public static extern bool LogonUser(string lpszUsername, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken);
    
    private void Impersonate(Enum domainName, string userName, string password)
    {
        IntPtr _tokenHandle = IntPtr.Zero;
        int Logon32_Provider_Default = 0;
        int Logon32_Logon_Interactive = 2;
    
        bool userSuccess = LogonUser(userName, domainName.ToString(), password, Logon32_Logon_Interactive, Logon32_Provider_Default, ref _tokenHandle);
    
        if (!userSuccess)
        {
            throw new Win32Exception(Marshal.GetLastWin32Error());
        }
    
        WindowsImpersonationContext _impersonatedUser = new WindowsIdentity(_tokenHandle).Impersonate();
    }
    
    链接地址: http://www.djcxy.com/p/44179.html

    上一篇: How to access Network Share from Raspberry Pi running IoT Core in UWP app

    下一篇: managed way of accessing UNC path with authenticaton