如何在UWP中访问本地网络(SMB)?

2024-03-03

我现在正在寻找很长一段时间,但我找不到针对这个特定问题的任何有效解决方案。我的目标是为主 HoloLens 应用程序创建一个后台应用程序(这意味着它必须在 UWP 中完成),它应该能够访问本地文件和本地网络 (SMB),以便它可以映射文件层次结构为了将它们转发到 Unity 中的主应用程序,该应用程序将以 3D/2D 方式显示文件。

到目前为止,我尝试了几件事,包括:常规 StorageFolder/StorageFile 交互(如果这能起作用那就太好了,因为本地文件交互已经实现)、SharpCifs.Smb 和 Xb.Net.SmbTree。

夏普Cif:

    public SmbFile GetFile ()
    {
        //smb://UserName:Password@ServerIP/ShareName/Folder/FileName.txt
        SmbFile file = new SmbFile ("smb:\\winAccName:[email protected] /cdn-cgi/l/email-protection\\TestShare");
        file.Connect (); // Or any file action.
        return file;
    }
    // Exception User-Unhandled -- SharpCifs.Util.Sharpen.UnknownHostException: '..MSBROWSE__.<01>'

到目前为止,我还没有成功地对与 SmbFile 相关的所有内容进行任何操作。通常我会收到无法连接到 IP 地址的错误消息。

使用存储文件/文件夹:

    async public void OpenFile ()
    {
        StorageFolder folder = await StorageFolder.GetFolderFromPathAsync ("\\\\ServerName.local");
        if (folder != null) CreateMessage ("Got the folder: " + folder.Name);

        StorageFile file = await folder.GetFileAsync ("abc.txt");
        CreateMessage ("Success: " + file.Path);
    }
    // Exception User-Unhandled -- System.Runtime.InteropServices.COMException: 'Error HRESULT E_FAIL has been returned from a call to a COM component.'

后者成功获取了该文件夹,但未能对其执行任何操作。但这是迄今为止我能达到的最远距离。我还启用了以下功能:

<Capabilities>
    <Capability Name="internetClientServer" />
    <Capability Name="internetClient" />
    <Capability Name="privateNetworkClientServer" />
    <uap:Capability Name="sharedUserCertificates" />
    <uap:Capability Name="enterpriseAuthentication" />
    <DeviceCapability Name="proximity" />
</Capabilities>

我假设我遇到了权限问题,我想知道为什么 SmbTree / SmbFile 交互始终需要用户名和密码,而 StorageFile/StorageFolder 交互不需要它(因此失败?)。我发现必须添加这些功能...但这并不是所需要的全部。文件选择器也只是解决本地文件权限问题的解决方案,但不能成为网络的解决方案(客户端不允许自己访问主机上的文件)。另外,对于 HoloLens,我不能依赖文件选择器,因为它目前没有。不管怎样,选择器似乎仍然可以工作,如果我可以创建一个自定义文件选择器,那也将是一个可接受的解决方案......如果可能的话。

Ps:我还尝试以管理员身份运行 Visual Studio。并且还设置了共享文件夹权限(即使对于访客)。当前共享文件夹是可通过“A:\”访问的本地文件夹。还设置文件类型关联。

我听到很多评论说 UWP 不支持 SMB,但我听到了有关使其工作的人的评论(尽管这对我来说不起作用)。我还听说 SMB 1 不再被允许了。我非常感谢任何帮助,因为这肯定不是我的专业领域。

问候!


只是为了回答我自己的问题,因为似乎我已经解决了它,我想总结一下我所做的事情(我还发现只有一部分是必要的,但也许这只是暂时有效......这些仍然可能给出提示):

  • 在 Package.appxmanifest 中添加相关功能:Internet、专用网络、邻近度、企业身份验证。
  • 同时,还添加声明:给定文件的文件类型关联并添加“共享目标”。这些东西可以在可视化显示中设置,不需要代码视图。
  • 确保在共享文件夹中正确设置权限,并考虑访客权限。这是强制性的。
  • 使用正确的路径: 。 。 。 StorageFolder文件夹=await StorageFolder.GetFolderFromPathAsync(@"\\142.24.56.10\TestShare");或 (@"\\JOHNS-COMPUTER\TestShare");

-> 从那里开始,您将获得根据您的计算机和 Windows 帐户授予的权限(至少我认为)。

不需要其他东西:既不需要特殊的身份验证,也不需要 SMB 特定的库。它只是通过 StorageFile/StorageFolder 系统工作,并且可以使用与本地文件系统相同的方法来导航网络。

编辑:看来罪魁祸首实际上是我的“共享目标”声明。如果您声明了 0 个文件类型关联,或者您没有声明“共享目标”,则它将不起作用。

另一个信息:“broadFileSystemAccess”也非常有用,它可以减轻您对标准文件类型的限制。如果没有这个,您将无法获取未声明的文件和没有扩展名的文件。不过它有自己的规则,请仔细阅读。

一个小提示:Visual Studio 在 xml 中用绿色下划线表示好像存在错误,但它仍然有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在UWP中访问本地网络(SMB)? 的相关文章

  • 如何使用CloudKit的CKShare创建共享?

    我正在研究新的CKShare苹果今年发布的 我对此有一些疑问 我试图关注 WWDC 的 CloudKit 中的新增功能 视频 但部分代码在 Xcode 中不再工作 我想做的是 用户输入他的姓名和电话 然后单击UIButton 将与特定的人分
  • Python读取时出现权限错误

    import os import rarfile file input Password List Directory rarFile input Rar File passwordList open os path dirname fil
  • Android:如何通过 ueventd.rc 向设备授予 666 权限

    我需要访问连接到我的 已root Android 的USB 摄像头 我使用的是运行 Android 4 2 2 的三星 Galaxy S4 我想用普通的应用程序访问它 所以我需要该设备是世界可读的 我可以通过 shell 进行连接并输入 r
  • Laravel:file_put_contents() 权限被拒绝 - 正确的存储/框架/缓存权限?

    我在编辑 Laravel 缓存时遇到了困难 它位于storage framework cache 我正在运行一个保存到某个缓存的作业 但是每次运行该作业时 都会发生此错误 ERROR file put contents var www ht
  • 如何访问 UWP 应用中的注册表项?

    我想通过 UWP 应用程序访问 windows10 注册表项 键为 HKEY LOCAL MACHINE SOFTWARE MyCompanyName MyName 我找不到任何函数调用来完成它 请指示我该怎么做 谢谢你 如果您的应用程序是
  • 了解 smb 和 DCERPC 的远程命令执行功能

    我试图了解通过 impacket 脚本在 Windows 上执行远程命令的所有可用方法 https www coresecurity com corelabs research open source tools impacket http
  • 使用 NativeMessaging 进行边缘扩展

    我有一个具有本机消息传递支持的边缘扩展 它与系统中运行的 uwp 应用程序进行通信 是否必须将扩展打包到 uwp 应用程序的 appx 文件夹中 如果没有 那么我们如何将扩展上传到边缘扩展存储中 我遵循 secureInput 示例 htt
  • string[] 和 List 的不同绑定行为

    我尝试理解 没有成功 为什么当源对象是时绑定行为不同string and List
  • 在UWP中分发私有win应用程序

    SCENARIO 我是 UWP 技术的新手 我想创建并分发我的第一个 UWP 应用程序 这是一个公司应用程序 因此不会出售 也不会在商店中公开 然后我将编辑该应用程序并再次部署它 我找不到有关它的文档 问题 是否有一个特定的过程来执行此操作
  • UWP 网格填充父窗口

    我们正在进行一个学校项目 但陷入了死胡同 我们正在努力使grid填充整个父窗口 但我们根本无法这样做 This is what the designer shows and how we want it to look And this i
  • 实现共享功能的标准方法

    我需要在 iOS 中实现 共享为 功能 例如 一个按钮名为 共享为 并弹出一个对话框 其中包括电子邮件 短信 Facebook Twitter 等项目 我想知道是否有一个标准对话框可以完成这项工作 经过搜索 我发现在 iOS6 中使用 UI
  • 共享图像的正确方法(使用意图)

    我在应用程序中创建图像 并希望共享这些社交网络 facebook 邮件应用程序 gmail 以及其他可以 接收 图像的应用程序 问题的根源 我认为 是我不想使用外部存储作为图像的基础 我想使用我的数据文件夹或缓存文件夹 因为它们都不需要任何
  • 使用 pinvoke 从 UWP C# 应用程序调用 LoadLibrary

    我正在尝试从 C UWP 应用程序调用非托管 dll 中的方法 我这样做 但在非托管 dll 上调用 LoadLibrary 以便我可以使用它 这一切在调试模式下工作正常 但是在发布模式下 我收到一个奇怪的错误 消息 类初始化方法 Test
  • 如何始终显示滚动条?

    如何在 UWP 应用中始终显示滚动条 滚动条总是在几秒钟后消失 我尝试过设置ScrollViewer VerticalScrollBarVisibility Visible 但滚动条仍然消失 我已经看过了Xaml UI 基础示例 https
  • 是否可以在 Windows 应用商店应用程序中的用户之间共享数据?

    我很确定我知道这个问题的答案 非常大的否 但是是否可以在相同的应用程序但是 Windows 运行时环境中有多个用户 Windows 登录 而不是 Microsoft Store 用户 本地数据文件夹是相对于每个登录用户而言的 所以乍一看这似
  • C# CreateSymbolicLink 不遵循共享访问

    我不确定这只是 C 问题还是 Windows 限制 我有一台运行我的程序的服务器 它在共享文件夹中创建符号链接 我可以通过此链接从具有正常磁盘路径和共享路径的服务器进行访问 如果我尝试与其他电脑访问同一共享 我将无法访问链接的文件 我确实可
  • 在锁定屏幕上显示 UWP 控件

    我做了什么 我得到的要求是用户需要能够通过 Windows 锁定屏幕启动我的应用程序 搜索 www 后发现 从锁定屏幕连接热键非常困难 如果不是不可能的话 然后我发现这个帖子 https stackoverflow com question
  • 如何处理 MVVM 模式中嵌套 ListView 的 ItemClick?

    XAML代码
  • 与主机中的容器共享目录或卷

    我有一个目录 可能是后面的卷 我想与所有交互式容器共享 我知道 本机 Docker 卷存储在 var lib docker volumes and docker run v似乎是最简单的方法 但我认为Data Volume Containe
  • “此应用程序只能在应用程序容器的上下文中运行。” - Visual Studio 2015 开发新手

    我有点绝望了 我几个小时以来一直在尝试解决以下问题 我开发了一个应用程序 现在尝试使用 Visual Studio 2015 的安装向导扩展来安装 一切都在构建或 没有错误 但是当我打开应用程序时 它突出显示它只能在应用程序容器的上下文中打

随机推荐

  • ASP .NET MVC 保护控制器/操作

    如果我只想管理员访问名为 ManagerUser 的操作 我知道我可以这样做 Authorize Roles Constants ROLES ADMINISTRATOR public ActionResult ManageUser stri
  • Tomcat Maven 插件 - 子容器在启动期间失败

    我正在开发一个多模块 Maven 项目 我想在 Tomcat 7 中运行我的 Web 项目 但出现此错误 子容器在启动期间失败 我继续 右键单击网络项目 gt 运行方式 gt 运行配置 gt 目标 tomcat7 run 我有这个日志 av
  • 数据表自动切换页面

    我正在尝试自动在数据表页面之间切换 但似乎无法使其正常工作 我要么得到一个长时间运行的脚本 如果我尝试添加延迟 则会收到以下错误 table page draw delay 不是函数 下面是我正在使用的代码 document ready f
  • 反斜杠字符的 Bash 参数扩展规则

    我有一个变量 我想使用双反斜杠 替换每次出现的反斜杠 外壳参数扩展 https www gnu org software bash manual html node Shell Parameter Expansion html 最初 我使用
  • 从子目录中的不同文件导入类

    这是我正在使用的结构 directory script py subdir init py myclass01 py myclass02 py 我想要做的是在 script py 中导入定义的类myclass01 py and myclas
  • 展平 pandas 中的嵌套 json

    我收到了 JSON 格式的天气观测数据 我想将其展平 一份完整记录 第一个位置包含 25 个报告 Rep in Period SiteRep DV type Obs Location i 3002 lat 60 749 lon 0 854
  • 有什么方法可以更改 VSTO Outlook 添加中的自定义任务窗格颜色吗?

    有没有办法更改邮件撰写窗口中的自定义任务窗格背景颜色 UPDATE UserControl BackColor 给了我这个结果 但我希望整个自定义任务窗格是白色的 我设置用户控件的代码在这里 public partial class Use
  • 如何使用 C++ ShellExecute 命令在特定页面或指定目的地打开 PDF

    我正在尝试打开一个 pdf在特定的指定目的地使用ShellExecute 但我不知道参数应该如何格式化 我这里使用的参数是pagew 以前有人尝试过这个吗 我找到了几个答案 但它们对我的需要没有帮助 PS 只打开 pdf工作正常 int m
  • “您需要将 Theme.AppCompat 主题(或后代)与设计库一起使用”错误

    每次我都会收到 您需要将 Theme AppCompat 主题 或后代 与设计库一起使用 错误 即使我显然使用的是 AppCompat 主题 后代主题 依赖项 compile com android support appcompat v7
  • 在 C# 中使用私钥对数据进行签名

    我需要使用算法 SHA1RSA Rsa 密钥长度 2048 和 64 基本编码 用一个私钥对一些数据进行签名 我的代码是这样的 string sPayload HttpWebRequest httpWebRequest HttpWebReq
  • 如何从 R 矩阵中随机选择重复的行样本?

    如何从 R 矩阵中随机选择重复的行样本 所以请明确一点 我将从一个 100 行的矩阵开始 我可以选择其中 5 行并创建一个新矩阵 我希望可以选择在更换或不更换的情况下执行此操作 Use sample在行上replace TRUE or re
  • 释放从 C 函数返回的内存

    在 C 中 在释放函数返回的内存时 这是更好的做法 提供一个 析构函数 来封装对 free 的调用 要求用户自己 free 返回的指针 例如 要打开和关闭文件 我们执行以下操作 FILE f fopen blah w fclose f 这是
  • 是否可以阻止 requireJS 自动添加 .js 文件扩展名?

    我正在使用 requireJS 来加载脚本 它有文档中的这个细节 http requirejs org docs api html config 用于模块名称的路径不应包含 js 扩展名 因为路径映射可能是目录 在我的应用程序中 我将所有脚
  • 平铺未在折叠工具栏中居中

    我尝试设置collapsingToolbarLayout setCollapsedTitleGravity Gravity CENTER collapsingToolbarLayout setExpandedTitleGravity Gra
  • 使用php和mysql查询结果获取父级下的所有子节点、孙子节点等

    我一直在试图解决这个问题 但我一无所获 希望有人能来拯救我 我的问题是我正在使用邻接列表数据模型在 mysql 中生成层次结构数据 我可以将表 见下文 检索到一个多维数组中 其中每个项目都有关联数组 我想要做的是 一旦我得到这个数组 我想得
  • Firebase从中间键上下查询数据

    我有一个有日期的数据列表 我通常查询按日期排序的数据 但我遇到的情况是 我需要从中间键来回检索一些数据 我有按日期排序的数据 orderByChild date 像这样 key1 date 2016 07 25 key2 date 2016
  • Body/HTML 元素缩小到比视口小得多

    我正在使我的 WordPress 网站具有响应能力 我正在处理的页面上有两个图像 我想将它们设置为max width100 使它们响应 这是我在我制作的另一个网站上所做的 并且效果很好 然而 我注意到当我在 Chrome 开发工具中缩小页面
  • 仅更改底部导航视图的一个图标的大小(Android)

    我只想更改底部导航视图中使用的 5 个图标中的一个图标 第三个图标 的大小 我想要中心图标像这样大 这是我尝试过的 private fun setReportPainIconSize val bottomNavigationView fin
  • Sql:优化 BETWEEN 子句

    我写了一份声明 需要将近一个小时才能运行 因此我寻求帮助 以便我可以更快地完成此操作 那么我们开始吧 我正在对两个表进行内部联接 我有许多由间隔表示的时间间隔 并且我想仅从这些间隔内的测量中获取测量数据 intervals 有两列 一列是间
  • 如何在UWP中访问本地网络(SMB)?

    我现在正在寻找很长一段时间 但我找不到针对这个特定问题的任何有效解决方案 我的目标是为主 HoloLens 应用程序创建一个后台应用程序 这意味着它必须在 UWP 中完成 它应该能够访问本地文件和本地网络 SMB 以便它可以映射文件层次结构