Medium Trust阻止您做什么?例如,我已经了解到中信任阻止您使用System.IO.Path.GetTempPath().那还有什么呢?
来自.Net Hosting(Flexible Medium Trust)的评论说.
Godaddy是中等信任,这意味着你不能使用IL发射之类的东西(Nhibernate需要这个用于代理)
这是真的吗?有人在GoDaddy上使用NHibernate吗?
我想在我的开发机器上模拟共享托管环境的信任级别,以便在我部署我的解决方案时没有令人讨厌的意外.
我在web.config中添加了这个设置:
<trust level="Medium" originUrl="*"/>
Run Code Online (Sandbox Code Playgroud)
唯一的问题是,当我尝试保存到我的数据库时,我收到此异常:
InnerException:System.Security.SecurityException Message ="类型'System.Net.SocketPermission,System,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的权限请求失败." 来源= "mscorlib程序"
我如何在保持媒体"喜欢"信任的同时特别允许这一点.还有其他我能合理允许的东西吗?我要在GoDaddy上主持.
我试图在可能共享主机中部署简单的asp.net mvc框架应用程序,我得到像这样的错误:
安全异常说明:应用程序尝试执行安全策略不允许的操作.要授予此应用程序所需的权限,请与您的系统管理员联系或在配置文件中更改应用程序的信任级别.
异常详细信息:System.Security.SecurityException:请求类型为'System.Security.Permissions.ReflectionPermission,mscorlib,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的权限失败.
来源错误:
在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.
http://test.pakabink.lt/
在我的控制面板中,我正在设置"ASP.NET 2.0 Full Trust".我需要请求服务器管理员进行更改?
嗨,我想让一个运行Mosso的网站有Castle Windsor作为我的IOC,但是我收到以下错误.
[SecurityException: That assembly does not allow partially trusted callers.]
GoldMine.WindsorControllerFactory..ctor() in WindsorControllerFactory.cs:33
GoldMine.MvcApplication.Application_Start() in Global.asax.cs:70
Run Code Online (Sandbox Code Playgroud)
我的问题是
谢谢
我正在寻找"简单的按钮",我可以说在中等信任下运行这个应用程序.
根据这篇关于中等信任的MSDN文章,在中等信任下:
FileIOPermission受到限制.这意味着您只能访问应用程序的虚拟目录层次结构中的文件.您的应用程序被授予应用程序虚拟目录层次结构的读取,写入,附加和路径发现权限.
但是,对于我当前的托管服务提供商在中等信任下运行应用程序,当我尝试在应用程序的根文件夹中读取/写入文件时,我收到access to path 'myfile.xml' denied错误.
使用以下代码读取此文件
XElement file = XElement.Load(HttpContext.Current.Server.MapPath("~/myfile.xml"));
Run Code Online (Sandbox Code Playgroud)
更新完整错误:
对"C:\ WebSites\mywebsite\myfile.xml"路径的访问被拒绝.
描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:System.UnauthorizedAccessException:拒绝访问路径"C:\ WebSites\mywebsite\myfile.xml".
ASP.NET无权访问所请求的资源.考虑将资源的访问权限授予ASP.NET请求标识.ASP.NET具有基本进程标识(IIS 5上通常为{MACHINE}\ASPNET,IIS 6和IIS 7上为网络服务,IIS 7.5上已配置的应用程序池标识),如果应用程序未模拟,则使用该标识.如果应用程序模拟通过,则标识将是匿名用户(通常为IUSR_MACHINENAME)或经过身份验证的请求用户.
要授予对文件的ASP.NET访问权限,请在资源管理器中右键单击该文件,选择"属性",然后选择"安全"选项卡.单击"添加"以添加适当的用户或组.突出显示ASP.NET帐户,并选中所需访问的框.
来源错误:
在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.
堆栈跟踪:
[UnauthorizedAccessException:拒绝访问路径'C:\ WebSites\mywebsite\myfile.xml'.]
System.IO .__ Error.WinIOError(Int32 errorCode,String maybeFullPath)+12892935 System.IO.FileStream.Init(String path, FileMode模式,FileAccess访问,Int32权限,Boolean useRights,FileShare共享,Int32 bufferSize,FileOptions选项,SECURITY_ATTRIBUTES secAttrs,String msgPath,Boolean bFromProxy,Boolean useLongPath)+2481
System.IO.FileStream..ctor(String path,FileMode mode, FileAccess访问,FileShare共享,Int32 bufferSize,FileOptions选项,字符串msgPath,布尔bFromProxy)+229 System.IO.FileStream..ctor(字符串路径,FileMode模式,FileAccess访问,FileShare共享)+102
System.Xml.XmlWriterSettings.CreateWriter(String outputFileName)+5224496
System.Xml.Linq.XElement.Save(String fileName,SaveOptions options)+108
mesoBoard.Services.SiteConfig.UpdateCache()+1971 mesoBoard.Web.MvcApplication.OnApplicationStarted( )+62 Ninject.Web.Mvc.NinjectHttpApplication.Application_Start()+604[HttpException(0x80004005):拒绝访问路径'C:\ WebSites\mywebsite\myfile.xml'.]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context,HttpApplication app)+3985477 System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS( IntPtr appContext,HttpContext context,MethodInfo [] handlers)+191
System.Web.HttpApplication.InitSpecial(HttpApplicationState state,MethodInfo [] handlers,IntPtr appContext,HttpContext context)+325 System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr …
任何机构可以简单地告诉我什么是中等信托级别?
它是什么意思:
"越来越多的ASP.NET主机提供商都在他们的servers.Therefore实施中等信任策略也使您的网站的工作(尽可能)在中等信任是强制执行的环境是很重要的."
谢谢
我正在努力确保我的ASP.Net库在Medium Trust下运行.我遇到了问题,因为如果它在中等信任下运行,我需要禁用一些代码.
如何从C#确定当前应用程序是否为中等信任?
具体来说,我正在尝试从web.config中读取customErrors部分,并且我遇到了安全性错误
我正在对Medium Trust中的Linq查询进行自定义投影,我得到了一个MethodAccessException或者TypeAccessException抱怨反思和安全权利.
我已将代码简化为以下内容:
var anon1 = new { Name = "Bill Gates" };
var ctor = anon1.GetType().GetConstructors().First();
// With native Reflection it works
var anon2 = ctor.Invoke(new object[] { "Steve Ballmer" });
var expr = Expression.New(ctor, Expression.Constant("Scott Guthrie"));
var lamb = Expression.Lambda(expr); // This throws in Medium Trust
var anon3 = lamb.Compile().DynamicInvoke();
anon1.ToString(); // --> { Name = Bill Gates }
anon2.ToString(); // --> { Name = Steve Ballmer }
anon3.ToString(); // --> { Name = …Run Code Online (Sandbox Code Playgroud) medium-trust ×10
asp.net ×6
c# ×2
permissions ×2
.net ×1
asp.net-mvc ×1
file-io ×1
linq ×1
nhibernate ×1
reflection ×1
security ×1
trust ×1