如何在Xbox上访问受密码保护的SMB网络共享?

时间:2018-08-11 14:19:20

标签: c# uwp smb xbox xbox-one

我正在尝试访问需要Xbox上的网络凭据的SMB文件共享。我是否通过了凭据都没关系(通过设备门户中有点隐藏的“管理网络凭据”设置添加凭据没有明显的效果。)由于任何原因,除非密码保护,否则我无法访问该文件整个计算机都被禁用,并且该文件夹设置为与“来宾”共享。

我尝试过的事情:
WNetUseConnection P / Invoke,SharpCifs.Std,通过设备门户网站添加凭据,各种设置配置,StorageFolder访问,System.IO方法,每个AppXManifest声明和功能(包括受限功能(例如broadFileSystemAccess以及所有必需的功能,例如privateNetworkClientServer,internetClientServer, enterpriseAuthentication等),协议启动处理,运行中的进程(似乎不允许),“ runas”动词,net cmd命令,各种REST api(包括Xbox已知问题页面中列出的KnownFolders.MediaDevices事物),恢复出厂设置,通过Uri传递凭据以及其他各种方式。

示例:

-System.IO-

using (var instream = new FileStream($@"\\{SMBIP}\SharingTest\{TARGETFILE}", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
    using (var outstream = new FileStream($@"D:\DevelopmentFiles\{TARGETFILE}", FileMode.Create, FileAccess.Write, FileShare.ReadWrite))
    {
        int size;
        while ((size = await instream.ReadAsync(buffer, 0, chunksize)) > 0)
        {
            count += size;
            await outstream.WriteAsync(buffer, 0, size).ConfigureAwait(false);
        }
    }
}

-Windows.Storage |注意:我也尝试为此使用文件选择器,但是不允许选择网络位置-

StorageFolder sourceFolder = await StorageFolder.GetFolderFromPathAsync($@"\\{SMBIP}\Sharingtest");
StorageFile source = await sourceFolder.GetFileAsync(TARGETFILE);
StorageFolder targFolder = await StorageFolder.GetFolderFromPathAsync(@"D:\DevelopmentFiles");
StorageFile targ = await targFolder.CreateFileAsync(TARGETFILE);
using (var ranstrmin = await source.OpenAsync(FileAccessMode.Read, StorageOpenOptions.AllowReadersAndWriters))
using (var instream = ranstrmin.AsStream())
{
    using (var ranstrmout = await targ.OpenAsync(FileAccessMode.ReadWrite, StorageOpenOptions.AllowReadersAndWriters))
    using (var outstream = ranstrmout.AsStream())
    {
        int size;
        while ((size = await instream.ReadAsync(buffer, 0, chunksize)) > 0)
        {
            count += size;
            await outstream.WriteAsync(buffer, 0, size).ConfigureAwait(false);
        }
    }
}

我知道有办法做到这一点。我尝试查看vlc-winrt源代码以了解他们如何做到这一点,但是不幸的是C ++对我来说还是象形文字。记录下来,我对完成此任务的方式没有任何限制,因为它仅用于内部使用。我只需要找到一些使其工作的方法即可。

0 个答案:

没有答案