gpt4 book ai didi

c# - 将程序集加载到安全性较低的应用程序域中

转载 作者:太空宇宙 更新时间:2023-11-03 14:06:55 26 4
gpt4 key购买 nike

我正在尝试创建一个对文件系统具有只读访问权限的沙盒应用程序域。我为此编写的代码是

    var ps = new PermissionSet(PermissionState.None);
ps.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution));
var f = new FileIOPermission(PermissionState.None);
f.AllLocalFiles = FileIOPermissionAccess.Read;
ps.AddPermission(f);

AppDomain domain = AppDomain.CreateDomain("MyDomain",
null,
new AppDomainSetup { ApplicationBase = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) },
ps
);
string pathToDll = @"c:\temp\test.dll";
string thirdPartyFullName = "MyTest.Test";
IPlugin myObject = (IPlugin)domain.CreateInstanceFromAndUnwrap(pathToDll, thirdPartyFullName);

几乎可以工作,除了它在最后一行出现此异常错误

Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

如果我将 App Domain 上的 FileIOPermission 更改为具有完全访问权限,它运行良好。在我加载到应用程序域中的程序集中是否需要更改某些内容以表明它只需要对文件系统的读取权限?

我正在使用 .Net 4.0。

最佳答案

我想你可能还需要

FileIOPermissionAccess.PathDiscovery

http://msdn.microsoft.com/en-us/library/y7h7t2a2.aspx

关于c# - 将程序集加载到安全性较低的应用程序域中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9084795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com