2011-10-27 33 views
1

這行代碼:ASP MVC安全例外中等信任級別

var user = users.SingleOrDefault(u => u.EmailAddress == form.EmailAddress); 

,用戶是

public class User 
{ 
    [Key, Required] 
    public string EmailAddress { get; set; } 

    public string PasswordHash { get; set; } 

    public string PasswordSalt { get; protected set; } 
} 

集合在中等信任級別時產生異常。

有沒有辦法讓它在這個信任級別上工作?

我嘗試用鑰匙簽署我的程序集,但問題仍然存在。

我正在使用實體框架和ASP.NET 4.0。

我無法更改信任級別(代碼在完全信任下工作正常)。

這裏的異常堆棧:

SecurityException: Richiesta di autorizzazione di tipo 'System.Security.Permissions.ReflectionPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' non soddisfatta.] 
System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet) +0 
System.Security.CodeAccessSecurityEngine.Check(CodeAccessPermission cap, StackCrawlMark& stackMark) +31 
System.Security.CodeAccessPermission.Demand() +46 
System.Data.Common.Internal.Materialization.Translator.DemandMemberAccess() +50 
System.Data.Common.Internal.Materialization.Shaper`1..ctor(DbDataReader reader, ObjectContext context, MetadataWorkspace workspace, MergeOption mergeOption, Int32 stateCount, CoordinatorFactory`1 rootCoordinatorFactory, Action checkPermissions, Boolean readerOwned) +165 
System.Data.Common.Internal.Materialization.ShaperFactory`1.Create(DbDataReader reader, ObjectContext context, MetadataWorkspace workspace, MergeOption mergeOption, Boolean readerOwned) +93 
System.Data.Objects.Internal.ObjectQueryExecutionPlan.Execute(ObjectContext context, ObjectParameterCollection parameterValues) +736 
System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption) +149 
System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() +44 
System.Linq.Enumerable.SingleOrDefault(IEnumerable`1 source) +184 
System.Data.Objects.ELinq.ObjectQueryProvider.<GetElementFunction>b__2(IEnumerable`1 sequence) +41 
System.Data.Objects.ELinq.ObjectQueryProvider.ExecuteSingle(IEnumerable`1 query, Expression queryRoot) +59 
System.Data.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute(Expression expression) +150 
System.Data.Entity.Internal.Linq.DbQueryProvider.Execute(Expression expression) +102 
System.Linq.Queryable.SingleOrDefault(IQueryable`1 source, Expression`1 predicate) +300 
+0

請將異常和堆棧跟蹤添加到您的問題。 – jrummell

+0

如果您將信任設置爲中等,本地錯誤是什麼? –

+0

這是本地錯誤。 – user1012750

回答