1
我有这个加载插件类型组件的小应用程序,其他用户可以免费上传到服务器。但我不希望用户能够访问其他用户文件。我需要将每个插件组件的访问权限设置为受限制的访问权限。在ASP.NET中设置FileIOPermissions incode
我试图设置插件类基类内的访问,但即使如此,加载的插件类似乎有完整的文件访问。
我无法设置具有属性的权限,因为路径会根据谁加载页面而发生变化。
下面是一个代码snippest:
public abstract class PluginBase<T>
{
public PluginBase
{
PermissionSet ps = new PermissionSet(System.Security.Permissions.PermissionState.None);
ps.AddPermission(new System.Security.Permissions.FileIOPermission(System.Security.Permissions.FileIOPermissionAccess.PathDiscovery | System.Security.Permissions.FileIOPermissionAccess.Read, HttpContext.Current.Server.MapPath("/app_data/www_somesite_com")));
ps.PermitOnly();
}
}
public class SomePlugin : PluginBase<SomePlugin>
{
public SomePlugin
{
File.WriteAllText("c:\test.txt", "This should not be possible, but it is.. why?");
}
}
提前非常感谢!
这几乎做我需要的一切。问题是我正在创建软件,用户可以自由地上传usercontrol,并且需要检查他们是否实际实现了该属性。出于某种原因(可能是通过设计?)我无法检查该安全属性是否实际实现,因为它没有显示在GetCustomAttributes方法返回的列表中。任何人都知道如何检查该属性是否被执行。 – Gabfine 2009-09-02 18:11:02