Ninject.MVC3 +中等信任 = 安全异常
- 我创建了一个类型为 Asp.net MVC 4 的新项目
- 我通过 Ninject.MVC3 安装了该包 NuGet
Install Package Ninject.MVC3
- 运行该项目时,出现安全错误:
Error
“/MediumTrustSample”应用程序中的服务器错误。
安全异常
描述:应用程序尝试执行操作,但未执行 安全策略允许。授予此申请 所需权限请联系您的系统管理员或更改 配置文件中应用程序的信任级别。
异常详细信息:System.Security.SecurityException:请求 类型为“System.Security.Permissions.ReflectionPermission”的权限, mscorlib,版本=4.0.0.0,文化=中性, PublicKeyToken=b77a5c561934e089'失败。
来源错误:
第 20 行:
DynamicModuleUtility.RegisterModule(typeof(OnePerRequestModule));线 21:
DynamicModuleUtility.RegisterModule(typeof(HttpApplicationInitializationModule)); 第 22 行:bootstrapper.Initialize(CreateKernel);第 23 行:
第 24 行:源文件:C:\Users\Riderman_2\Documents\Visual Studio 2010\项目\MediumTrustSample\MediumTrustSample\App_Start\NinjectMVC3.cs 行数:22
堆栈跟踪:
[SecurityException:请求类型的权限 'System.Security.Permissions.ReflectionPermission,mscorlib, 版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089' 失败。]
System.Security.CodeAccessSecurityEngine.SpecialDemand(PermissionType 什么Permission、StackCrawlMark&堆栈标记) +0
System.Security.CodeAccessPermission.Demand(PermissionType 权限类型)+30
System.Reflection.RuntimeMethodInfo.Invoke(对象 obj,BindingFlags invokeAttr、Binder 绑定器、Object[] 参数、CultureInfo 文化、 布尔值跳过VisibilityChecks)+281
System.Reflection.RuntimeMethodInfo.Invoke(对象 obj,BindingFlags invokeAttr、Binder 绑定器、Object[] 参数、CultureInfo 文化) +38 Ninject.Infrastruct.Language.ExtensionsForMemberInfo.GetParentDefinition(MethodInfo ExtensionsForMemberInfo.cs:145 中的方法、BindingFlags 标志)
Ninject.Infrastruct.Language.ExtensionsForMemberInfo.IsDefined(PropertyInfo 元素、类型 attributeType、布尔继承)中 ExtensionsForMemberInfo.cs:173
Ninject.Selection.Heuristics.StandardInjectionHeuristic.ShouldInject(MemberInfo 成员)在 StandardInjectionHeuristic.cs:47
Ninject.Selection.<>c_DisplayClass3.b_2(IInjectionHeuristic h) in Selector.cs:92 System.Linq.Enumerable.Any(IEnumerable1 源,Func
2 谓词)+149
Ninject.Selection.Selector.b_1(PropertyInfo p) 在 Selector.cs 中:92
System.Linq.WhereEnumerableIterator1.MoveNext() +156
1.InsertRange(Int32索引, IEnumerable
System.Collections.Generic.List1 集合)+552
1 系列,操作
Ninject.Selection.Selector.SelectPropertiesForInjection(Type type) 中 选择器.cs:89
Ninject.Planning.Strategies.PropertyReflectionStrategy.Execute(IPlan 计划)在 PropertyReflectionStrategy.cs:60
Ninject.Planning.<>c__DisplayClass3.b__1(IPlanningStrategy s) 在 Planner.cs 中:68
Ninject.Infrastruct.Language.ExtensionsForIEnumerableOfT.Map(IEnumerable1 操作),位于 ExtensionsForIEnumerableOfT.cs:23
2.MoveNext() +238
Planner.cs 中的 Ninject.Planning.Planner.GetPlan(Type type):70
Context.cs 中的 Ninject.Activation.Context.Resolve():180
Ninject.KernelBase.b__7(IContext context) 中 KernelBase.cs:375
System.Linq.WhereSelectEnumerableIterator
System.Linq.Enumerable.SingleOrDefault(IEnumerable1 源)+299
1.GetValue(类型服务,IContext 父级)在 Target.cs:179
Ninject.Planning.Targets.Target
Ninject.Planning.Targets.Target1.ResolveWithin(IContext 父级) 目标.cs:147
2.MoveNext() +110
Ninject.Activation.Providers.StandardProvider.GetValue(IContext StandardProvider.cs:97 中的上下文、ITarget 目标)
System.Linq.WhereSelectArrayIterator
System.Linq.Buffer1..ctor(IEnumerable
1 源) +488
System.Linq.Enumerable.ToArray(IEnumerable1 源) +104
2.MoveNext() +238
Ninject.Activation.Providers.StandardProvider.Create(IContext上下文) 在 StandardProvider.cs:81 Ninject.Activation.Context.Resolve() 中 Context.cs:157 Ninject.KernelBase.b__7(IContext 上下文) 在 KernelBase.cs:375
System.Linq.WhereSelectEnumerableIterator
System.Linq.d_b11.MoveNext() +296
1 源)+282
System.Linq.Enumerable.Single(IEnumerable
Ninject.ResolutionExtensions.Get(IResolutionRoot 根, IParameter[] 参数)在ResolutionExtensions.cs:37
Ninject.Web.Mvc.Bootstrapper.Initialize(Func`1 createKernelCallback) 在 Bootstrapper.cs 中:72
MediumTrustSample.App_Start.NinjectMVC3.Start() 中 C:\Users\Riderman_2\Documents\Visual Studio 2010\Projects\MediumTrustSample\MediumTrustSample\App_Start\NinjectMVC3.cs:22版本信息:Microsoft .NET Framework 版本:4.0.30319; ASP.NET版本:4.0.30319.272
问题
如何将Ninject.MVC3与MediumTrust一起使用?
- I created a new project of type Asp.net MVC 4
- I installed the package via Ninject.MVC3 NuGet
Install Package Ninject.MVC3
- When running the project, security error:
Error
Server Error in '/MediumTrustSample' Application.
Security Exception
Description: The application attempted to perform an operation not
allowed by the security policy. To grant this application the
required permission please contact your system administrator or change
the application's trust level in the configuration file.Exception Details: System.Security.SecurityException: Request for the
permission of type 'System.Security.Permissions.ReflectionPermission,
mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089' failed.Source Error:
Line 20:
DynamicModuleUtility.RegisterModule(typeof(OnePerRequestModule)); Line
21:
DynamicModuleUtility.RegisterModule(typeof(HttpApplicationInitializationModule));
Line 22: bootstrapper.Initialize(CreateKernel); Line 23:
} Line 24:Source File: C:\Users\Riderman_2\Documents\Visual Studio
2010\Projects\MediumTrustSample\MediumTrustSample\App_Start\NinjectMVC3.cs
Line: 22Stack Trace:
[SecurityException: Request for the permission of type
'System.Security.Permissions.ReflectionPermission, mscorlib,
Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'
failed.]
System.Security.CodeAccessSecurityEngine.SpecialDemand(PermissionType
whatPermission, StackCrawlMark& stackMark) +0
System.Security.CodeAccessPermission.Demand(PermissionType
permissionType) +30
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags
invokeAttr, Binder binder, Object[] parameters, CultureInfo culture,
Boolean skipVisibilityChecks) +281
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags
invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
+38 Ninject.Infrastructure.Language.ExtensionsForMemberInfo.GetParentDefinition(MethodInfo
method, BindingFlags flags) in ExtensionsForMemberInfo.cs:145
Ninject.Infrastructure.Language.ExtensionsForMemberInfo.IsDefined(PropertyInfo
element, Type attributeType, Boolean inherit) in
ExtensionsForMemberInfo.cs:173
Ninject.Selection.Heuristics.StandardInjectionHeuristic.ShouldInject(MemberInfo
member) in StandardInjectionHeuristic.cs:47
Ninject.Selection.<>c_DisplayClass3.b_2(IInjectionHeuristic h) in Selector.cs:92 System.Linq.Enumerable.Any(IEnumerable1
2 predicate) +149
source, Func
Ninject.Selection.Selector.b_1(PropertyInfo
p) in Selector.cs:92
System.Linq.WhereEnumerableIterator1.MoveNext() +156
1.InsertRange(Int32 index,
System.Collections.Generic.List
IEnumerable1 collection) +552
1
Ninject.Selection.Selector.SelectPropertiesForInjection(Type type) in
Selector.cs:89
Ninject.Planning.Strategies.PropertyReflectionStrategy.Execute(IPlan
plan) in PropertyReflectionStrategy.cs:60
Ninject.Planning.<>c__DisplayClass3.<GetPlan>b__1(IPlanningStrategy s)
in Planner.cs:68
Ninject.Infrastructure.Language.ExtensionsForIEnumerableOfT.Map(IEnumerable
series, Action1 action) in ExtensionsForIEnumerableOfT.cs:23
2.MoveNext() +238
Ninject.Planning.Planner.GetPlan(Type type) in Planner.cs:70
Ninject.Activation.Context.Resolve() in Context.cs:180
Ninject.KernelBase.<Resolve>b__7(IContext context) in
KernelBase.cs:375
System.Linq.WhereSelectEnumerableIterator
System.Linq.Enumerable.SingleOrDefault(IEnumerable1 source) +299
1.GetValue(Type service, IContext
Ninject.Planning.Targets.Target
parent) in Target.cs:179
Ninject.Planning.Targets.Target1.ResolveWithin(IContext parent) in
2.MoveNext() +110
Target.cs:147
Ninject.Activation.Providers.StandardProvider.GetValue(IContext
context, ITarget target) in StandardProvider.cs:97
System.Linq.WhereSelectArrayIterator
System.Linq.Buffer1..ctor(IEnumerable
1 source) +488
System.Linq.Enumerable.ToArray(IEnumerable1 source) +104
2.MoveNext() +238
Ninject.Activation.Providers.StandardProvider.Create(IContext context)
in StandardProvider.cs:81 Ninject.Activation.Context.Resolve() in
Context.cs:157 Ninject.KernelBase.<Resolve>b__7(IContext context)
in KernelBase.cs:375
System.Linq.WhereSelectEnumerableIterator
System.Linq.d_b11.MoveNext() +296
1 source) +282
System.Linq.Enumerable.Single(IEnumerable
Ninject.ResolutionExtensions.Get(IResolutionRoot root, IParameter[]
parameters) in ResolutionExtensions.cs:37
Ninject.Web.Mvc.Bootstrapper.Initialize(Func`1 createKernelCallback)
in Bootstrapper.cs:72
MediumTrustSample.App_Start.NinjectMVC3.Start() in
C:\Users\Riderman_2\Documents\Visual Studio
2010\Projects\MediumTrustSample\MediumTrustSample\App_Start\NinjectMVC3.cs:22Version Information: Microsoft .NET Framework Version:4.0.30319;
ASP.NET Version:4.0.30319.272
Question
How to use Ninject.MVC3 with MediumTrust?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

去获取中等信任版本:https://github.com/ninject/ninject/downloads
Go and get the medium trust version: https://github.com/ninject/ninject/downloads