问题标签 [partial-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.

0 投票
2 回答
1405 浏览

c# - 无法将 System.Web.Extensions 应用于 PartialTrustVisibleAssemblies 列表

在 webforms .net 4.5 应用程序的 web.config 中,我设置了以下内容:

因为这是 Microsoft 的一种解决方法,以克服 asp.net 报告查看器中的一个错误,该错误导致生成大型报告的时间比以前的 .net 版本(3.5 和更早版本)要长得多。不幸的是,启用旧 CasModel 导致了以下错误。正如错误所暗示的那样,我多次尝试在我的网站的 web.config 中应用异常,例如:

但错误仍然发生。我还尝试将此设置应用于 .net 4 web.config 并指定此程序集具有完全信任,但它仍然无法正常工作。我已经阅读了大量与此问题相关的文档,但我找不到任何其他可能解决此问题的方法(除了在我的项目中删除此程序集或对我的 Web 应用程序进行其他重大更改)。任何有关如何解决或解决此问题的建议将不胜感激,谢谢。

“/”应用程序中的服务器错误。尝试通过安全透明方法“Microsoft.ScriptManager.MSAjaxv45.PreApplicationStartCode.Start()”访问安全关键方法“System.Web.UI.ScriptManager.get_ScriptResourceMapping()”失败。程序集“System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”是一个有条件的 APTCA 程序集,在当前 AppDomain 中未启用。要使该程序集被部分信任或安全透明代码使用,请添加程序集名称“System.Web.Extensions, PublicKey=0024000004800000940000000602000000240000525341310004000001000100B5FC90E7027F67871E773A8FDE8938C81DD402BA65B9201D60593E96C492651E889CC13F1415EBB53FAC1131AE0BD333C5EE6021672D9718EA31A8AEBD0DA0072F25D87DBA6FC90FFD598ED4DA35E44C398C454307E8E33B8426143DAEC9F596836F97C8F74750E5975C64E2189F45DEF46B2A2B1247ADC3652BF5C308055DA9' to the the PartialTrustVisibleAssemblies list when creating the AppDomain. 说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。异常详细信息:System.MethodAccessException:尝试通过安全透明方法“Microsoft.ScriptManager.MSAjaxv45.PreApplicationStartCode.Start()”访问安全关键方法“System.Web.UI.ScriptManager。get_ScriptResourceMapping()' 失败。程序集“System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”是一个有条件的 APTCA 程序集,在当前 AppDomain 中未启用。To enable this assembly to be used by partial trust or security transparent code, please add assembly name 'System.Web.Extensions, PublicKey=0024000004800000940000000602000000240000525341310004000001000100B5FC90E7027F67871E773A8FDE8938C81DD402BA65B9201D60593E96C492651E889CC13F1415EBB53FAC1131AE0BD333C5EE6021672D9718EA31A8AEBD0DA0072F25D87DBA6FC90FFD598ED4DA35E44C398C454307E8E33B8426143DAEC9F596836F97C8F74750E5975C64E2189F45DEF46B2A2B1247ADC3652BF5C308055DA9' to the the PartialTrustVisibleAssemblies list when creating the AppDomain. Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 是一个有条件的 APTCA 程序集,在当前 AppDomain 中未启用。To enable this assembly to be used by partial trust or security transparent code, please add assembly name 'System.Web.Extensions, PublicKey=0024000004800000940000000602000000240000525341310004000001000100B5FC90E7027F67871E773A8FDE8938C81DD402BA65B9201D60593E96C492651E889CC13F1415EBB53FAC1131AE0BD333C5EE6021672D9718EA31A8AEBD0DA0072F25D87DBA6FC90FFD598ED4DA35E44C398C454307E8E33B8426143DAEC9F596836F97C8F74750E5975C64E2189F45DEF46B2A2B1247ADC3652BF5C308055DA9' to the the PartialTrustVisibleAssemblies list when creating the AppDomain. Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 是一个有条件的 APTCA 程序集,在当前 AppDomain 中未启用。To enable this assembly to be used by partial trust or security transparent code, please add assembly name 'System.Web.Extensions, PublicKey=0024000004800000940000000602000000240000525341310004000001000100B5FC90E7027F67871E773A8FDE8938C81DD402BA65B9201D60593E96C492651E889CC13F1415EBB53FAC1131AE0BD333C5EE6021672D9718EA31A8AEBD0DA0072F25D87DBA6FC90FFD598ED4DA35E44C398C454307E8E33B8426143DAEC9F596836F97C8F74750E5975C64E2189F45DEF46B2A2B1247ADC3652BF5C308055DA9' to the the PartialTrustVisibleAssemblies list when creating the AppDomain. 是在当前 AppDomain 中未启用的有条件 APTCA 程序集。To enable this assembly to be used by partial trust or security transparent code, please add assembly name 'System.Web.Extensions, PublicKey=0024000004800000940000000602000000240000525341310004000001000100B5FC90E7027F67871E773A8FDE8938C81DD402BA65B9201D60593E96C492651E889CC13F1415EBB53FAC1131AE0BD333C5EE6021672D9718EA31A8AEBD0DA0072F25D87DBA6FC90FFD598ED4DA35E44C398C454307E8E33B8426143DAEC9F596836F97C8F74750E5975C64E2189F45DEF46B2A2B1247ADC3652BF5C308055DA9' to the the PartialTrustVisibleAssemblies list when creating the AppDomain. 是在当前 AppDomain 中未启用的有条件 APTCA 程序集。To enable this assembly to be used by partial trust or security transparent code, please add assembly name 'System.Web.Extensions, PublicKey=0024000004800000940000000602000000240000525341310004000001000100B5FC90E7027F67871E773A8FDE8938C81DD402BA65B9201D60593E96C492651E889CC13F1415EBB53FAC1131AE0BD333C5EE6021672D9718EA31A8AEBD0DA0072F25D87DBA6FC90FFD598ED4DA35E44C398C454307E8E33B8426143DAEC9F596836F97C8F74750E5975C64E2189F45DEF46B2A2B1247ADC3652BF5C308055DA9' to the the PartialTrustVisibleAssemblies list when creating the AppDomain.

0 投票
0 回答
70 浏览

c# - IXmlSerializable 类型“System.Xml.Linq.XElement”不能在部分信任下反序列化

我在调用 wcf 服务时遇到问题。错误 :

IXmlSerializable 类型“System.Xml.Linq.XElement”不能在部分信任下反序列化,因为它没有公共无参数构造函数。

我的网站 (asp.net) 和 wcf 服务部署在 godaddy 主机上。相同的代码在我的本地环境中运行良好,但不知道为什么它在部署后无法运行。我试图用谷歌搜索它并发现了一些不同的解决方案,但它们都没有帮助我。此 WCF 服务的某些方法运行良好,例如它允许我验证用户(登录)、获取用户信息等……但是当网站尝试调用 wcf 服务时,在其他 2 个页面上出现上述错误。

任何帮助将不胜感激

提前致谢

0 投票
1 回答
129 浏览

ilmerge - 为什么 ILMerge 会删除与安全相关的属性?

有时,ILMerge 已更改,现在它删除了与安全相关的属性。

问题:

  • 为什么要实现这个功能?
  • 和/或是否可以(安全地)从工具的私有版本(用于创建已发布的程序集)中删除它?

源代码中的实现在这里,fwiw:


它会给某些人带来问题:

我想使用 ILMerge 构建具有该AllowPartiallyTrustedCallers属性的程序集。我曾经这样做(使用旧版本的 ILMerge)并且不知道为什么我不能了。

我大概可以通过根本不使用 ILMerge 来做到这一点(即将所有源代码放入一个项目中,而不是构建多个要合并的项目),所以我看不出有什么危害,即为什么 ILMerge 将不再做。

0 投票
1 回答
64 浏览

c# - 限制调用某些函数的替代方法?

我最近了解到AppDomain.NET Core 不完全支持它,而且他们到目前为止还没有实现完全支持的计划。

我想做的是制作一个可以运行插件的程序,但我不希望该插件能够访问某些程序集或命名空间(例如System.IO)。

由于缺乏支持,我在 .NET Core 之前解决此问题的方法将不再有效。

有没有其他方法可以在 .NET Core 中实现相同的目标?

更具体的例子

假设我使用Assembly.LoadFrom文件系统加载程序集,其中包含我然后调用的插件方法。但我不希望插件能够擦除文件等。事实上,我只希望插件能够从特定程序集中调用函数。

0 投票
1 回答
153 浏览

c# - 部分信任申请问题

我正在使用 Visual Studio 2015 WPF 应用程序 C#。

我有一个程序,我刚刚发送给我的 Beta 测试人员。使用 Windows 10 的人对我使用“完全信任”感到非常心痛。他需要更改注册表值以允许它安装,然后他将注册表值更改回来。

我不希望 Win10 用户需要更改注册表值,所以我将其更改为“部分信任应用程序”。作为一个部分信任的应用程序,Zone internet,它甚至无法打开——它无法运行。

我找不到有关如何指定我需要的信任/权限的帮助。

我的应用程序执行以下操作:

有人可以向我指出有关如何将我的程序配置为“部分信任”应用程序的信息吗?

如果我无法弄清楚这一点,我将被迫使用其他一些安装程序。我真的很喜欢微软安装程序中的在线更新。

谢谢,问候,霍华德

0 投票
0 回答
112 浏览

c# - 当代码以部分信任运行时,无法新建 gRPC.Core.Channel 实例

Grpc.Core.Channel 用于调用服务。当代码在部分信任环境中运行时,会弹出以下错误。

“类型违反的继承安全规则:'Grpc.Core.internal.SafeHandleZeroIsInvalid' 派生类型必须与基类型的安全可访问性匹配或难以访问”

如何在部分信任的环境中使用 Channel 调用 Grpc 服务?如果不能,还有其他方法可以调用 Grpc 服务吗?

查看 gRPC 代码,一个 .net 类 SafeHandle 由 SafeHandleZeroIsInvalid 继承。如官方文档所述,对于部分受信任的代码,是不允许的。SafeHandle 的 InheritanceDemand 是:“对于继承者的完全信任。这个成员不能被部分信任的代码继承。” https://docs.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.safehandle?view=netframework-4.8

我尝试创建自己的类,该类继承自 SafeHandle。而且,我尝试新建这个类的一个实例。当代码在部分信任中运行时,会弹出相同的错误。我认为 SafeHandle 是导致此问题的根本原因。

我想要的是在部分信任中正确调用 Grpc 服务。有什么解决方法吗?