asp.net - 带有 src 的 HTML 5 音频到带有凭据的虚拟目录
问题描述
我有一个 asp.net 应用程序,它执行以下操作:从 DB 加载有关音频文件(文件名、路径等)的数据,并将它们显示在页面上的表格中。应用程序使用 Windows 身份验证(无法更改)。
我在表格单元格中添加了 html 5 音频控件,以便用户无需下载即可播放音频文件 - 实际上,我根本不希望他们能够下载文件。
音频文件来自两个网络共享目录 - 一个可供所有域用户访问,第二个仅供特定用户访问。音频控制要求 src 是一个相对 url - 好的,很好,所以我去了 IIS 管理器并在我的应用程序下创建了两个虚拟目录。对于第二个受高度保护的目录,我设置了应该有助于我的应用程序访问文件的凭据。
结果对我来说似乎很奇怪:用户看到预加载的第一个(可访问)目录中的音频文件并且可以播放它们;用户无法预加载,也无法使用预设凭据播放第二个目录中的文件。
问题绝对不在于音频 src 本身——它的格式正确。似乎 IIS 试图在当前域用户的凭据下访问第二个虚拟目录中的数据,而不是在文件夹设置中设置登录名和密码的那个。
有没有办法克服这个问题?不幸的是,向所有用户授予对该目录的访问权限并不是一个机会。将应用程序池标识更改为同一特定用户也没有结果。第二个文件夹的应用程序用户和用户帐户都在同一个域中。
解决方案
IIS 通过应用程序池身份访问文件而不是登录用户。因此,当您运行具有网络共享目录的应用程序时,请将应用程序池标识更改为有权访问两者的域用户。然后您可以通过授权规则限制登录用户权限。
推荐阅读
- javascript - javascript new Date() 在 2 台差异机器/时区上同时创建是否完全相同?
- javascript - 使用 Barba.JS 进行页面转换后 JS 内容不起作用
- javascript - 如何使此 JavaScript 与“使用严格”兼容?
- android - 在android 11中创建文件夹并存储文件
- cics - 如何在 CICS 上回滚对 VSAM 文件的更改?
- node.js - GatewayScript 请求而不等待响应
- whatsapp - 在 Whatsapp API 链接中选择英语
- javascript - 如何重叠导航栏而不是向右推送内容?
- python - 使用 sklearn 进行 rmse 交叉验证
- python - Python在换行符中写入文件