问题标签 [full-trust]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 尝试根据信任级别上传文件时出现 System.Security.Permissions.FileIOPermission 错误
我正在 Visual Studio 2013 上开发一个 Web 应用程序。在我的应用程序中,用户可以上传图像(保存到计算机的本地文件系统,发布后保存到服务器的文件系统)。我将网站发布到我的主机。但是上传时出现了问题。我联系了支持人员,他们告诉我他们不允许Full Tust,他们允许中等信任级别的应用程序。我在 web.config 中添加了以下行以将应用程序的信任级别设置为中等:
但是当我上传文件尝试时,我遇到了以下错误:
说明:应用程序试图执行安全策略不允许的操作。要授予此应用程序所需的权限,请联系您的系统管理员或在配置文件中更改应用程序的信任级别。
异常详细信息:System.Security.SecurityException:请求“System.Security.Permissions.FileIOPermission,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”类型的权限失败。
有没有办法给自己中等信任级别的文件操作?我正在寻找解决方案数周,但没有任何东西派上用场。
这是导致问题的代码。
这是堆栈跟踪:
请帮忙。
编辑:到目前为止我所做的
我根据我得到的这个链接添加了安全策略配置
说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息: System.Web.HttpException:无法读取信任级别“中”的安全策略文件。
错误。我尝试创建自定义安全策略文件并更改$AppDir$ 以外的FileIOPermission内容。但这也无济于事。然后我创建新的 web.config 文件。我复制了 web_mediumtrust.config 的内容。但也没有解决。最后,我删除了安全策略标签及其所有内容。我用
以授权连接服务器。但我无法建立联系。(不知道为什么,同样的数据可以建立ftp连接。)
结果没有什么能解决我的问题,我很想解决它。这是我的 web.config。
我使用此配置得到System.Security.SecurityException 。
编辑2:<location path="myAppName" allowOverride="false">
我根据这个链接添加 到我的配置文件中。现在应用程序可以在localhost上正常运行。但是发布的网站仍然抛出错误。这是我的 web.config 文件的最新版本:
asp.net-mvc - 将 MVC 5 部署到专用服务器失败
在发现 MVC 5 不再支持中等信任后,我已将我的应用程序发布到专用服务器 - 将 .NET 信任级别调整为完全信任,但我仍然收到以下错误:
说明:应用程序试图执行安全策略不允许的操作。要授予此应用程序所需的权限,请联系您的系统管理员或在配置文件中更改应用程序的信任级别。
异常详细信息:System.Security.SecurityException:请求失败。
有人有什么想法吗?
我已经包括...在网络配置中。
c# - ASP .Net Core 2 自包含部署在不同应用程序池标识帐户下的 IIS 中出现 502.5 错误
我有一个针对 netcoreapp2.1 的 ASP .Net Core 2 Web Api 应用程序,并作为自包含(生成 exe)部署到 IIS。
在此服务器上,应用程序将与配置为在特定 AD 帐户下运行的现有应用程序池一起使用。
当我们将其更改为使用似乎与第一个帐户对文件夹具有相同权限的其他帐户时,应用程序将无法启动并给出 502.5 错误。
这是真正奇怪的部分。如果我们运行另一个指向同一个应用程序文件夹但在第一个 AD 帐户下运行的站点,然后使用第二个 AD 帐户运行该站点,它现在可以正常运行。
另一点信息,应用程序文件的物理位置在网络共享上。当我们将物理文件移动到 IIS 服务器(在本地运行)时,它会起作用,但由于我们的企业设置,这不是生产中的选项。因此,它似乎可能与使用 UNC 文件路径从网络共享启动 exe 的某种权限/策略有关。
更新 文件是从 NAS 而非 Windows Server 共享中共享的。此外,我已经确定,对于应用程序报告它在 Internet 区域中运行而其他用户在 Intranet 区域中运行的用户,此操作失败。
这些区域是如何确定的?
以下是失败时的标准输出日志。
c# - 部分信任申请问题
我正在使用 Visual Studio 2015 WPF 应用程序 C#。
我有一个程序,我刚刚发送给我的 Beta 测试人员。使用 Windows 10 的人对我使用“完全信任”感到非常心痛。他需要更改注册表值以允许它安装,然后他将注册表值更改回来。
我不希望 Win10 用户需要更改注册表值,所以我将其更改为“部分信任应用程序”。作为一个部分信任的应用程序,Zone internet,它甚至无法打开——它无法运行。
我找不到有关如何指定我需要的信任/权限的帮助。
我的应用程序执行以下操作:
有人可以向我指出有关如何将我的程序配置为“部分信任”应用程序的信息吗?
如果我无法弄清楚这一点,我将被迫使用其他一些安装程序。我真的很喜欢微软安装程序中的在线更新。
谢谢,问候,霍华德
uwp - 我可以在从具有完全信任功能的 UWP 应用程序启动 exe 时传递特定于 exe 的参数吗?
在 Package.appmanifest 中,我们指定 GroupID 和启动可执行文件的参数,例如 - mstsc.exe。我们也可以传递一些参数,比如 mstsc /v:hostname 吗?我试过以这种方式传递它,但没有奏效。有不同的方法吗?
谢谢!!
vb.net - 权限问题???使用 System.IO.File.Exists
我有一个 .net 4 winform 应用程序,对于一台计算机,System.IO.File.Exists("my file path") 每次都返回 false。
- 文件在那里。
- 如果用户使用文件资源管理器可以查看、打开、保存...该文件并具有对该文件夹的完全访问权限。
- 我制作了一个单独的 winforms 应用程序,它具有非常简单的代码(见下文)并且它可以工作。找到相同的文件。
这是代码:
我还在不工作的应用程序中使用第 3 方 dll 来读取 imap 邮箱。这台计算机在尝试将附件保存到根目录时再次抛出错误,错误如下
所以这似乎是一个权限问题。但话又说回来,用户/计算机可以通过资源管理器或仅检查文件是否存在的第二个 .net 应用程序访问它?
我不确定还能尝试什么。任何帮助建议将不胜感激。
已经在域中尝试过这台多台计算机,它们都可以正常工作。试过不同的用户登录电脑出现同样的问题。找不到文件以管理员身份运行第一个应用程序同样的问题,找不到文件。
System.IO.File.Exists(txtPath.Text) 在一个应用程序中返回 False,但在第二个应用程序中返回 True
c# - FullTrustProcessLauncher 在任务管理器的 UWP 应用下创建了桌面应用程序的新实例
每当我们想使用 Speaker 进行录音时,我们都需要与桌面应用程序进行通信,但每次我们想要访问扬声器代码或扬声器和麦克风时,它都需要调用以下代码。
上述代码访问 Recorder.exe 并使用 Appservice (com.recorder.service) 创建与桌面应用程序的通信管道。但是,每当我们启动 FulltrustProcesslauncher 时,它每次都会在任务管理器中为 Recorder 应用程序创建新实例,并且之前创建的实例没有被使用,并且仍然列在任务管理器中的 UWP 应用程序下。
我的问题是:有没有一种方法,我们既可以使用以前创建的 Recorder 应用程序实例,也可以在使用 OnBackgroundActivated 和 StartProcess() 方法创建与 Recorder 应用程序的新连接时终止旧实例?我注意到在任务管理器中两个 Recorder.exe 都分配了唯一的 ID。因此,似乎每当我们启动 FullTrustProcessLauncher 时,都会为 Recorder 应用程序分配一个新的 Id,并且它不会识别旧的 Recorder 应用程序。
我尝试过的事情是:我创建了一个全局变量并将其设置为 1,当我第一次启动 FullTrustProcessLauncher 和下次尝试访问 Recorder 应用程序时,我跳过了 StartProcess() 方法。但这带来了另一个问题,您的代码没有记录。我还在 RecorderApp 中创建了一种方法,以便在不需要时退出 Recorder 应用程序。但我得到一个异常:未设置对象引用。在 Packager 项目的包清单文件中,我添加了 a:SupportsMultipleInstances=false 希望它不会创建多个实例,但这似乎也不起作用
uwp - Problem accessing native executable resources in UWP package in user installation
I have a windows native binary (actually, a small collection of them, but one is the 'controller' for everything else), which I want to be able to put in the Windows Store. The controller needs to run elevated. They're designed to be used with an installer and a workflow which is entirely unsuited to AppContainers, so I am using the Desktop Bridge (Packaged Win32). These are old, gnarly, and definitely not rewritable in short order, so I've concluded I need to create an MSIX package and workflow which wraps the original binaries (albeit with some small adaptations). So, what I have now is a package containing:
- the binaries, arranged in the package in the same relationship as in a native installation;
- A .net intermediate process which starts the binaries elevated, intended to run full-trust;
- A UWP UI program, which starts the intermediate full-trust;
- A Service Provider, which mediates the communication between the UI and the intermediate.
When I install the package onto a machine's admin account, and run it, everything works just fine. When I install it onto a user account, it works fine provided it is also installed into an admin account on the same machine. But if it's installed only onto the user account, and not the admin account, the intermediate fails to start the controller. The error it produces is "File not found" (which, I know, could mean anything). In fact, I can install on both, run it in the user account, then delete it from the admin account, and then it fails on the user account.
The misbehaviour happens whether I side-load it onto development machines, or whether I download it from the store. It's a reliable failure, demonstrable on several different versions of W10.
A bit of mousing around shows that the file is exactly where the intermediate thinks it should be (in the installation directory in Program Files\WindowsApps), and that doesn't change whether or not the admin installation is there. Also, the access control settings are identical whether or not the admin installation is there. In fact, I can't find any difference that would tell a user whether the admin has installed it. But something is causing an error, and I have no idea where to look for it.
I want to stress: this is not a problem of the controller misbehaving in some way. The controller never even gets to run. I get to see the UAC prompt (which correctly identifies the file), and then the next thing I get is the File Not Found exception from inside Process.Start().
Has anybody experienced anything like this, or have any deeper understanding of how the different users' installations are controlled? Thanks.
EDIT: I think I've now satisfied myself that it's not a failure to find the file, it's a failure to run elevated. When the intermediate attempts to run the binary without elevation, the binary starts correctly (and then fails subsequently because of a lack of permissions for its own behaviour). Of course, there's no AUC prompt. So, what could cause a failure to elevate after the UAC prompt?
---Edit---
I've made a toy app, based on the demo at https://stefanwick.com/2018/10/07/app-elevation-samples-part-3, which demonstrates exactly the same effect. I've published it in the store, and it passed certification. I've not been able to see any way, in the store, to mark an app as unsuitable for installation by a non-admin (nor would I expect to).
I'm pretty certain now this is not a bug in my app, but is a bug in Windows. Does anybody knw how I can report it?
c# - 在页面加载时调用两个 fullTrust 应用程序时出错
我有一个具有录音和通话功能的 UWP 应用。为此,我添加了两个使用桌面桥应用程序的 FullTrust 应用程序。当我只调用一个 fullTrust 应用程序时,一切正常,但是当我通过传递参数(要启动的 FullTrust 应用程序)调用两个 FullTrust 应用程序时,启动的第一个应用程序行为不正确。对于这两个 FullTrust 应用程序,我使用了在 Windows 打包项目的 Package.Manifest 文件中声明的两个不同的 Appservice 名称。
我注意到,每当我切换 Fulltrust 应用程序调用的位置时,最后一个被调用的应用程序始终保持活动状态(具有 Appservice 连接的优先级),即使两者具有不同的应用程序服务名称。
这是我在用户在 UWP 中打开一个启动 Win32 应用程序和后台应用程序的页面时添加的代码
if (ApiInformation.IsApiContractPresent("Windows.ApplicationModel.FullTrustAppContract", 1, 0)) { await FullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync("Win32"); } if (ApiInformation.IsApiContractPresent("Windows.ApplicationModel.FullTrustAppContract", 1, 0)) { 等待 FullTrustProcessLauncher.LaunchFullTrustProcessForCurrentAppAsync("Background"); }
在上面的代码中,第一个启动的应用程序调用我的 Win32.exe 和第二个 background.exe。
如何独立调用这两个应用程序?每当我们想要启动它们并在需要时关闭或将来可能会关闭时,我想同时启动两个应用程序,但我可能需要在需要时关闭任何应用程序。谁能告诉我在同时调用两个 fullTrust 应用程序时如何处理正确的通信路径?